numpy.cov()
может использоваться для вычисления ковариационной матрицы:
In [1]: import numpy as np
In [2]: data = np.array([[1,2], [2,3], [3,3], [4,5], [5,5]])
In [3]: np.cov(data.T)
Out[3]:
array([[ 2.5, 2. ],
[ 2. , 1.8]])
По умолчанию np.cov()
ожидает, что каждая строка будет представлять переменную с наблюдениями в столбцах. Поэтому мне пришлось транспонировать вашу матрицу (используя .T
).
Альтернативный способ добиться того же - установить для rowvar
значение False
:
In [15]: np.cov(data, rowvar=False)
Out[15]:
array([[ 2.5, 2. ],
[ 2. , 1.8]])