NumPy 深拷贝
2021-11-06 17:33 更新
copy
方法制作完整数组的副本及其数据。
>>> d = a.copy() # a new array object with new data is created
>>> d is a
False
>>> d.base is a # d doesn't share anything with a
False
>>> d[0, 0] = 9999
>>> a
array([[ 0, 10, 10, 3],
[1234, 10, 10, 7],
[ 8, 10, 10, 11]])
copy
如果不再需要原始数组,有时应该在切片后调用。例如,假设a
是一个巨大的中间结果,而最终结果b
只包含 的一小部分a
,则在b
使用切片构造时应进行深拷贝:
>>> a = np.arange(int(1e8))
>>> b = a[:100].copy()
>>> del a # the memory of ``a`` can be released.
如果b = a[:100]
被使用,a
则被b
引用并且即使del a
被执行a
也会保留在内存中。
以上内容是否对您有帮助:
更多建议: