rya*_*yan 3 python arrays numpy diagonal
我正在尝试填充矩阵的偏移对角线:
loss_matrix = np.zeros((125,125))
np.diagonal(loss_matrix, 3).fill(4)
ValueError: assignment destination is read-only
Run Code Online (Sandbox Code Playgroud)
两个问题:
1)如果不迭代索引,如何设置numpy数组的偏移对角线?
2)为什么结果np.diagonal只读?numpy.diagonal的文档读取:"在NumPy 1.10中,它将返回读/写视图,写入返回的数组将改变原始数组."
np.__version__
'1.10.1'
Run Code Online (Sandbox Code Playgroud)
从对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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1512 次 |
| 最近记录: |