Встроенная функция вычисления ковариации

Есть ли способ в python получить матрицу ковариации, учитывая среднюю и примерную точки данных

Пример:

mean = [3 3.6]
data = [[1 2]
        [2 3]
        [3 3]
        [4 5] 
        [5 5]]

Я знаю, как вычислить то же самое, заменив эти значения в формуле. Но есть ли встроенная функция в python, которая делает это для меня. Я знаю, что есть один в Matlab, но я не уверен в python.

Ответ 1

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]])