Skip to main content
 首页 » 编程设计

Python复制数组而不进行就地替换

2025年05月04日22zhwl

我对 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]