python-3.x - 为什么 np.array[None] 更新该 numpy 数组中的所有值?

标签 python-3.x numpy

我在代码中发现了一个错误,在修复该错误时,我注意到 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/

相关文章:

python-3.x - 如何使用 paramiko 或其他方式从 vps ip 获取本地 PC 上的文件?

python - 在 python 中读取 PASCAL VOC 注释

python-3.x - 在 numpy 中获取索引

python - 正在创建的 CSV 文件大于我在 python/pycharm 中的原始数据的大小?

python - 查找列表中列的总和获取 "TypeError: cannot perform reduce with flexible type"

python - 在 Windows 上打印到 NamedTemporaryFile

Python 2to3 - 不要删除 unicode 前缀

python - 如何将具有数字和非数字条目的 numpy 数组转换为所有 float

python - 生成具有正态分布噪声和均值函数的数据

python - Django python发送带有非英文字符的电子邮件