假设存在一个矩阵M(可以使用numpy数组或DataFrames存储),想获得M的上三角区(不包括主对角线)的所有入口的元组列表(r,c,v),这样r是行索引,c是列索引,v是M中由r和c索引的值。
读了不同的问题,我了解到目前我可以使用np.triu_indices或类似的函数来建立一个三角形索引器,但这使我松开了给定值所对应的索引信息。例如,在 从上三角形获取矩阵的指数 这是为矩阵的最大值而讨论的,但我很难将其概括为获得一个上面定义的所有值的列表。
一个正方形矩阵排除主对角线的上三角形中的所有值,其中列索引大于行索引。
import numpy as np
M = np.array([[10, 11, 12, 13],
[14, 15, 16, 17],
[18, 19, 20, 21],
[22, 23, 24, 15]])
for r in range(M.shape[0]):
for c in range(r + 1, M.shape[0]):
v = M[r, c]
print(r, c, v)