Есть ли способ соотнести n массивов? - PullRequest
0 голосов
/ 14 мая 2019

Мне нужно сопоставить n массивов, которые я объединил в список, который выглядит следующим образом:

array_corr = [array([a1]), array([a2]), array([a3]), .... array([an])]

corr_mat = np.corrcoef([array_corr])

Но я получаю ошибку:

операнды не могут быть переданывместе.

Все массивы одинакового размера.Я не понимаю источник ошибки.

Я ожидаю, что на выходе будет матрица nxn, поскольку существует n массивов.

1 Ответ

1 голос
/ 14 мая 2019

Просто сделайте array_corr чистый numy 2d-массив и отправьте его на np.corrcoef без скобок (таким образом вы создаете список только с одним элементом матрицы):

array_corr = np.array([
    [1,2,3,4,5],
    [1,6,3,3,5],
    [1,2,9,4,3],
    [2,1,3,8,5],
    [6,6,2,6,5],
])

corr_mat = np.corrcoef(array_corr)

corr_mat

возвращает:

array([[ 1.        ,  0.40555355,  0.30460385,  0.74074375, -0.18257419],
       [ 0.40555355,  1.        , -0.05764881, -0.11092108,  0.07404361],
       [ 0.30460385, -0.05764881,  1.        ,  0.16777868, -0.92688   ],
       [ 0.74074375, -0.11092108,  0.16777868,  1.        ,  0.1040313 ],
       [-0.18257419,  0.07404361, -0.92688   ,  0.1040313 ,  1.        ]])
...