【问题标题】:Searching only a portion of a matrix in python在python中仅搜索矩阵的一部分
【发布时间】:2017-06-19 21:46:56
【问题描述】:

我有一个对称矩阵,我很好奇是否可以只使用 np.where 搜索矩阵的上三角形部分。也就是说,有没有办法使用循环或函数删除矩阵的下三角部分,以便我可以使用 np.where 搜索矩阵的上三角部分?

【问题讨论】:

  • 简短回答——是的,有可能。但是,我不相信有办法从矩阵中的每一行中提取子行,具体取决于它是否在上三角形中,我怀疑它会比搜索整个矩阵更快。目标是什么?可能有另一种方法可以解决您要完成的任务
  • 我想要做的是选择满足最小相关阈值的变量。因此,如果我有一个 0.7 的阈值和一个矩阵 [[1 ,0.42, 0.78], [0.42, 1, 0.73], [0.78, 0.73, 1],我想知道哪些变量对超过 0.7。所以我想返回 (var1, var3) 和 (var2, var3)。但如果我只使用 numpy.where,如果有意义的话,我会得到冗余配对

标签: python numpy search matrix


【解决方案1】:
import numpy as np

a = np.array([[1 ,0.42, 0.78], [0.42, 1, 0.73], [0.78, 0.73, 1]])
# k=1 excludes diagonal correlation is 1 
np.where(np.triu(a > 0.7, k=1))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-19
    • 2017-08-25
    • 1970-01-01
    • 2022-11-01
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多