我正在尝试填充矩阵的偏移对角线:
loss_matrix = np.zeros((125,125))
np.diagonal(loss_matrix, 3).fill(4)
ValueError: assignment destination is read-only
两个问题:
1)在不迭代索引的情况下,如何设置 numpy 数组的偏移对角线?
2)为什么结果是np.diagonal
只读? numpy.diagonal 的文档写道:“在 NumPy 1.10 中,它将返回读/写视图,并且写入返回的数组将更改原始数组。”
np.__version__
'1.10.1'
判断通过讨论在 NumPy 问题跟踪器上,该功能似乎陷入了困境,他们从未抽出时间修复文档,称其已被延迟。
如果你需要可写性,你可以强制它。这仅适用于 NumPy 1.9 及更高版本,因为np.diagonal
在较低版本上制作副本:
diag = np.diagonal(loss_matrix, 3)
# It's not writable. MAKE it writable.
diag.setflags(write=True)
diag.fill(4)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)