为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用numpy获得第n个最大相关系数及其指数?

如何使用numpy获得第n个最大相关系数及其指数?

尚方宝剑之说 2022-07-26 10:19:15
我计算这样的相关系数(它只是一个例子):a = np.array([[1, 2, 3],     [4, 7, 9],     [8, 7, 5]])corr = np.corrcoef(a)结果是一个相关矩阵。问题是如何获得第一个、第二个(或第 n 个)最大系数?以及它的索引?喜欢[0,1]和[2,1]
查看完整描述

1 回答

?
www说

TA贡献1775条经验 获得超8个赞

假设您有一个 NumPy 数组,并且您像这样计算相关系数:


import numpy as np


a = np.array([[1, 2, 3],

     [4, 7, 9],

     [8, 7, 5]])


corr = np.corrcoef(a)

现在展平数组,获取唯一系数并对展平的数组进行排序:


flat=corr.flatten()

flat = np.unique(flat)

平面数组如下所示:


>> array([-0.98198051, -0.95382097,  0.99339927,  1. ])

现在选择nth largest元素,只需选择正确的索引:


largest = flat[-1]

second_largest = flat[-2]


print(largest)

print(second_largest)

>> 1.0

>> 0.9933992677987828

要找到相应系数的索引:


result = np.where(corr == largest)

indices = np.array(result)

print(indices)

这将打印出以下数组。因此,出现最大系数的索引是 (0,0)、(1,1) 和 (2,2)。


>> array([[0, 1, 2],

       [0, 1, 2]])


查看完整回答
反对 回复 2022-07-26
  • 1 回答
  • 0 关注
  • 50 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信