Как уже упоминалось в комментариях, ваш вопрос несколько двусмысленный. Во-первых, существует вероятность того, что ни одна пара столбцов не будет коррелирована. Во-вторых, распаковка не имеет смысла, потому что вы создаете индексный массив, который вы не можете напрямую использовать в своем 2D-массиве. В-третьих, что должно быть первым, но я был слеп к этому - как упомянул @AmiTavory, нет смысла в «сопоставлении имен».
Корреляционная процедура сама по себе работает, как вы можете видеть в следующем примере:
import numpy as np
import pandas as pd
A = np.arange(100).reshape(25, 4)
#random order in column 2, i.e. a low correlation to the first columns
np.random.shuffle(A[:,2])
#flip column 3 to create a negative correlation with the first columns
A[:,3] = np.flipud(A[:,3])
#column 1 is unchanged, therefore positively correlated to column 0
df = pd.DataFrame(A)
print(df)
#establish a correlation matrix
corr = df.corr()
#retrieve index of pairs below a certain value
#use only the upper triangle with np.triu to filter for symmetric solutions
#use np.abs to take also negative correlation into account
res = np.argwhere(np.triu(np.abs(corr.values) <0.7))
print(res)
Выход:
[[0 2]
[1 2]
[2 3]]
Как и ожидалось, столбец 2 является единственным, который не связан ни с одним другим, что означает, что все остальные столбцы связаны друг с другом.