二维numpy数组次对角值的高效求反

qltillow  于 2023-01-20  发布在  其他
关注(0)|答案(1)|浏览(144)

如何有效地对2d numpy数组的次对角线元素求反?

l7wslrjt

l7wslrjt1#

考虑到k = -1的对角线偏移量,您可以使用numpy.tril_indices来计算次对角线项的索引,并使用掩码对它们求反,例如:

import numpy as np

a = np.arange(16).reshape(4, 4)

>>> array([[ 0,  1,  2,  3],
           [ 4,  5,  6,  7],
           [ 8,  9, 10, 11],
           [12, 13, 14, 15]])

idx_low_tri = np.tril_indices(a.shape[0], k=-1)
a[idx_low_tri] = -a[idx_low_tri]

>>> array([[  0,   1,   2,   3],
           [ -4,   5,   6,   7],
           [ -8,  -9,  10,  11],
           [-12, -13, -14,  15]])

希望这有帮助!

相关问题