【问题标题】:Traversing the upper triangle of a matrix in Python在Python中遍历矩阵的上三角形
【发布时间】:2020-05-18 23:20:03
【问题描述】:

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

阅读到目前为止我学到的不同问题,我可以使用 np.triu_indices 或类似函数构建一个三角形索引器,但这使我失去了哪些索引对应于给定值的信息。例如,在Get indices of matrix from upper triangle 中讨论了矩阵的最大值,但我很难将其概括为上面定义的所有值的列表。

【问题讨论】:

  • 请从intro tour 重复how to ask。 Stack Overflow 不是设计资源;我们希望看到具体的解决方案尝试,而不是笼统的讨论。发布您的输入、您想要的输出、您尝试的解决方案和实际结果。

标签: python adjacency-matrix


【解决方案1】:

方阵上三角中除主对角线外的值都是列索引大于行索引的值:

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)

【讨论】:

  • 谢谢!这比我预期的要简单得多。
猜你喜欢
  • 1970-01-01
  • 2013-05-02
  • 2018-08-26
  • 1970-01-01
  • 2022-01-06
  • 1970-01-01
  • 2019-04-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多