在Python中遍历矩阵的上三角形

问题描述 投票:0回答:1

假设存在一个矩阵M(可以使用numpy数组或DataFrames存储),想获得M的上三角区(不包括主对角线)的所有入口的元组列表(r,c,v),这样r是行索引,c是列索引,v是M中由r和c索引的值。

读了不同的问题,我了解到目前我可以使用np.triu_indices或类似的函数来建立一个三角形索引器,但这使我松开了给定值所对应的索引信息。例如,在 从上三角形获取矩阵的指数 这是为矩阵的最大值而讨论的,但我很难将其概括为获得一个上面定义的所有值的列表。

python adjacency-matrix
1个回答
0
投票

一个正方形矩阵排除主对角线的上三角形中的所有值,其中列索引大于行索引。

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)

© www.soinside.com 2019 - 2024. All rights reserved.