我计算这样的相关系数(它只是一个例子):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]])
添加回答
举报
0/150
提交
取消