我在我的代码中发现了一个错误,在修复这个错误时,我注意到numpy有一个奇怪的行为。
a = np.arange(10) # ints 0 -> 9
a[None] = 20
print(a) # output --> [20, 20, 20, 20, 20, 20, ... 20]
为什么每个位置的值都被替换为20?
这是预期的行为,而不是错误。a[None]
不是切片/索引,而是广播。它所做的是提供a
的底层数据的不同视图。
由于您正在用a[None]=20
修改这个视图,因此您也修改了a
的数据,因此也修改了a
本身。