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

我计算这样的相关系数(它只是一个例子):


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

     [4, 7, 9],

     [8, 7, 5]])


corr = np.corrcoef(a)

结果是一个相关矩阵。


问题是如何获得第一个、第二个(或第 n 个)最大系数?


以及它的索引?喜欢[0,1]和[2,1]


尚方宝剑之说
浏览 51回答 1
1回答

www说

假设您有一个 NumPy 数组,并且您像这样计算相关系数:import numpy as npa = 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]])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python