我在代码中发现了一个错误,在修复该错误时,我注意到 numpy 中有一个特殊的行为。
a = np.arange(10) # ints 0 -> 9
a[None] = 20
print(a) # output --> [20, 20, 20, 20, 20, 20, ... 20]
为什么每个位置的值都被替换为20?
最佳答案
这是预期的行为,而不是错误。 a[None]
不是切片/索引而是 broadcasting 。它的作用是提供 a
底层数据的不同 View 。
由于您使用 a[None]=20
修改此 View ,因此您还修改了 a
的数据,因此 a
本身。
关于python-3.x - 为什么 np.array[None] 更新该 numpy 数组中的所有值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66533293/