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

标签 python arrays numpy replace

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

相关文章:

python - 对具有多个属性的列表进行排序的 pythonic 方法是什么,这样第一个被反向排序而第二个不是?

Javascript 时间复杂度分析

c - 搜索字符串的程序中出现段错误

java - 在 Java 中嵌入 CPython 时,为什么会挂起?

python - 在 NumPy 中获取随机数的最佳方法是什么?

python setuptools 和 easy_install numpy

python - 如何在 NumPy 中指定算术运算的结果数据类型?

python opencv live camera feed,缩放对象

JavaScript «检测 <N 空槽> 未定义»

python - Groupby 连续值和聚合