2012-03-29 40 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