2012-03-29 44 views
11

是否有在python的方式,以获得给定的平均值和采样数据点构建在功能用于计算协方差

协方差矩阵

实施例:

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

我知道如何通过用这些来计算同一公式中的值。但有没有在Python中的功能,这对我来说是一个构建。我知道在Matlab中有一个,但我不确定python。

回答

22

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

的另一种方式来达到同样的事情是通过设置rowvarFalse

In [15]: np.cov(data, rowvar=False) 
Out[15]: 
array([[ 2.5, 2. ], 
     [ 2. , 1.8]]) 
+0

由于一吨的帮助:) – 2012-03-29 10:31:08