【发布时间】:2017-05-17 17:47:36
【问题描述】:
我今天发现了一件奇怪的事情,想知道是否有人可以阐明这里有什么不同?
import numpy as np
A = np.arange(12).reshape(4,3)
for a in A:
a = a + 1
B = np.arange(12).reshape(4,3)
for b in B:
b += 1
在运行每个for 循环后,A 没有更改,但B 已向每个元素添加了一个。我实际上使用B 版本在for 循环中写入初始化的NumPy 数组。
【问题讨论】:
-
i = i + 1重新分配i,i += 1将i递增1 -
您是否意识到您正在迭代数组的行,而不是单个元素?
-
下一行 i += 1 在汇编语言级别阻止一条指令
-
昨天的问题怎么可能得到 78 票?一天内获得近 80 次投票和 6630 次观看?这是一个错误还是什么?
-
@H.Doe:不,这不是错误。感谢所有点赞的人,感谢那些喜欢回答简单问题而不是寻找合适的重复项的人,以及右侧的HNQ 列表。
标签: python loops numpy operators