Допустим, у вас есть массив 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]])