我对 numpy 数组有中等经验,我不记得我以前发生过这种情况,例如:
y=np.array([1,2,3])
yy=y[:]
yy[2]=4
print y
它提供了
[1,2,4]
为什么会这样?我尝试使用 numpy.copy,但它仍在替换原始数组
最佳答案
我不确定当您使用 np.copy
时发生了什么,但是您应该看不到修改结果数组对原始数组的影响:
In [1]: import numpy as np
In [2]: y = np.array([1,2,3])
In [3]: yy = y.copy()
In [4]: yy[2] = 4
In [5]: print y
[1 2 3]
In [6]: print yy
[1 2 4]
In [7]: zz = np.copy(y)
In [8]: zz[2] = 5
In [9]: print zz
[1 2 5]
In [10]: print y
[1 2 3]
关于Python复制数组而不进行就地替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45093978/