python - 在python中复制变量

标签 python numpy copy

这个问题已经讨论过很多次了,但我还是很困惑。 下面的代码片段说明了这个问题:

a = np.arange(10)
m = a
m[0] = 1000
m
Out[106]: array([1000,    1,    2,    3,    4,    5,    6,    7,    8,    
9])
a
Out[107]: array([1000,    1,    2,    3,    4,    5,    6,    7,    8,    9])

现在开始

a = np.arange(10)
m = a
m = m + 1000
m
Out[102]: array([100, 101, 102, 103, 104, 105, 106, 107, 108, 109])
a
Out[103]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

我想完全理解为什么在计算m = m + 1000时不修改变量a的原因。我不明白这里的逻辑....

最佳答案

您发现了 a = a + ba += b 之间的区别。第一个创建一个值(a + b)并将其分配给 = 左边的变量(a >).第二个更改+=(由am 保存的数组)左边的值,并且所有持有此值的变量(am)都反射(reflect)了变化。

如果您尝试使用 += 代替,am 都会更改,因为它们都具有相同的值:

a = np.arange(10)
m = a
m += 1000
a

这表明:

array([1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009])

关于python - 在python中复制变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48306066/

相关文章:

python - 正则表达式匹配另一个特定术语之前或之后的术语

python - 向量化三个嵌套循环 - NumPy

python - 如何使这个舍入函数更快?

java - 可以复制或引用的构造函数

c - system() 复制失败,而 cmd 复制有效

python - 重新索引此轮类时间表的有效 Pandas 方法是什么?

python - 尝试使用 python 连接到 Google 云存储(GCS)

python - basemap 上的国家标签

python - 是否可以保留列表和 numpy 数组之间的引用链接

vba - 复制所选行两次