我有一个形状为(7,3,7,3)的多维numpy数组,我想修改其中轴0和轴2重合的广义对角线。这个广义对角线将被定义为数组中那些0号和2号索引相同的元素,并且将具有形状(3,3,7)。
做法:
我可以访问对角线元素,但是至少在numpy的1.8.2版本中,我无法“原地”修改它们。据Numpy文档说明,在1.10版本中可能会实现这一点。然而,由于我依赖其他人使用相同的代码,因此更新到numpy 1.10不是一个选项。文档还建议使用.copy()来获得可移植的解决方案,但是.copy()将复制数组,但如果我想修改原始数组的对角线,则没有用处。
另外,我尝试直接索引对角线元素[使用从numpy.indices((7,3,7,3))获取的输入],但没有成功。
在numpy 1.8.2中,如何访问广义对角线的元素以修改原始数组?
做法:
arr.diagonal(axis1=0, axis2=2)
我可以访问对角线元素,但是至少在numpy的1.8.2版本中,我无法“原地”修改它们。据Numpy文档说明,在1.10版本中可能会实现这一点。然而,由于我依赖其他人使用相同的代码,因此更新到numpy 1.10不是一个选项。文档还建议使用.copy()来获得可移植的解决方案,但是.copy()将复制数组,但如果我想修改原始数组的对角线,则没有用处。
另外,我尝试直接索引对角线元素[使用从numpy.indices((7,3,7,3))获取的输入],但没有成功。
在numpy 1.8.2中,如何访问广义对角线的元素以修改原始数组?