Может кто-нибудь объяснить, как работает numpy.cov? - PullRequest
0 голосов
/ 27 июня 2019

У меня есть массив массива 32x96 = [32x96].

Когда я выполняю np.cov(array), он возвращает массив 32x32 или, если я перемещаю массив, он возвращает массив 96x96. Я пытаюсь найти ковариацию между каждой из 96 позиций во всех 32 испытаниях. Я просто не понимаю, почему массив является 2-мерным, я думал, что он вернет 1-D массив 32 или 96.

1 Ответ

0 голосов
/ 27 июня 2019

давайте создадим пример, который мы можем визуализировать:

X = np.random.randn(6).reshape(3,2)
#Output
[[ 0.26076539, -0.04107355],
 [ 0.86502104,  0.67499596],
 [ 0.3184734 , -1.57163825]]

C = np.cov(X)
#Output
[[0.04555337, 0.02867848, 0.28525465],
 [0.02867848, 0.01805476, 0.17958431],
 [0.28525465, 0.17958431, 1.78626103]]

Как видите, матрица симметрична.Вдоль дианагона есть дисперсия каждого входного столбца, а другие элементы - ковариация в соответствии с логикой:

C_{ij} = cov(x_i,x_j)

Так что я верю, что вы хотите, чтобы первая строка (или первый столбец, конечно),Извините, я не знаю, как писать формулы здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...