参考链接: Python中的numpy.diag_indices
B = np.array([[1,0,0,0],[1,1,0,0], [1,1,1,0],[1,1,1,1]]) 输出结果: array([[1, 0, 0, 0], [1, 1, 0, 0], [1, 1, 1, 0], [1, 1, 1, 1]]) r = np.tril_indices_from(B) 输出结果: (array([0, 1, 1, 2, 2, 2, 3, 3, 3, 3], dtype=int64), array([0, 0, 1, 0, 1, 2, 0, 1, 2, 3], dtype=int64))
可以对列表的索引变成了两个数组,在大量数据的时候可以很方便索引值。 比如
for coord in zip(*r): B[coord[0], coord[1]] = 0
我们就得到了一个上三角矩阵 array([[0, 0, 0, 0], [0, 0, 1, 1], [0, 0, 0, 0], [0, 0, 0, 0]])