tuu*_*uut 0 python arrays numpy move-semantics
我有一个由函数更改的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)
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以按值传递数组,或者我有义务进行深拷贝?
如前所述,np.ndarray对象是可变的数据结构。这意味着在对对象进行更改时,任何引用特定对象的变量都将反映更改。
但是,请记住,大多数用于转换数组的numpy函数会返回新的数组对象,而使原始对象保持不变。
在这种情况下,您需要执行的操作取决于您正在执行的操作。如果您的函数修改了相同的数组,则需要将副本传递给该函数。您可以使用np.ndarray.copy。