【发布时间】:2017-12-19 19:24:42
【问题描述】:
我有一个由函数更改的 numpy 数组。 调用函数后我要处理数组的初始值(调用修改函数之前的值)
# Init of the array
array = np.array([1, 2, 3])
# Function that modifies array
func(array)
# Print the init value [1,2,3]
print(array)
有没有办法按值传递数组,还是我有义务进行深拷贝?
【问题讨论】:
-
在进入
func之前保存一份副本并稍后使用? -
是的,你是。 Numpy 数组是可变对象,因此对其所做的任何更改都会反映在指向该对象的所有变量中。如果您不希望这样,请发送
.copy()。 -
Python 不支持多种求值策略。如果您想处理副本,您必须制作副本。你不应该需要深拷贝,除非你有一个
numpy数组object类型... -
你不需要来自
copy模块的deepcopy(),而是np.array方法zzz.copy(),其中zzz是一个ndarray -
调用它
array不会使它成为一个数组...
标签: python arrays numpy move-semantics