用 -infinity - Python 填充 Numpy 数组的下三角(包括对角线)
fill lower triangle (including diagonal) of a Numpy Array with -infinity - Python
我有一个二维数组如下。
[[1 2 3]
[4 5 6]
[7 8 9]]
我需要转换成:
[[-inf 2 3]
[-inf -inf 6]
[-inf -inf -inf]]
即,将下三角形(包括对角线)填充到-infinity。
如何使用 python 来做到这一点?请帮忙。
使用np.tril_indices
:
m[np.tril_indices(m.shape[0])] = -np.inf
print(m)
array([[-inf, 2., 3.],
[-inf, -inf, 6.],
[-inf, -inf, -inf]])
@Kevin 建议,使用:
m[np.tril_indices_from(m)] = -np.inf
注意:数组的 dtype 必须是 float,因为 np.inf 是 float。
我有一个二维数组如下。
[[1 2 3]
[4 5 6]
[7 8 9]]
我需要转换成:
[[-inf 2 3]
[-inf -inf 6]
[-inf -inf -inf]]
即,将下三角形(包括对角线)填充到-infinity。 如何使用 python 来做到这一点?请帮忙。
使用np.tril_indices
:
m[np.tril_indices(m.shape[0])] = -np.inf
print(m)
array([[-inf, 2., 3.],
[-inf, -inf, 6.],
[-inf, -inf, -inf]])
@Kevin 建议,使用:
m[np.tril_indices_from(m)] = -np.inf
注意:数组的 dtype 必须是 float,因为 np.inf 是 float。