2013-02-02 170 views
20

如何計算python中的相關矩陣?我有一個n維向量,其中每個元素都有5維。例如我的矢量看起來像python中的相關矩陣

 
[ 
[0.1, .32, .2, 0.4, 0.8], 
[.23, .18, .56, .61, .12], 
[.9, .3, .6, .5, .3], 
[.34, .75, .91, .19, .21] 
] 

在載體的這種情況下的尺寸是4和該向量中的每個元素具有5維。如何以最簡單的方式構建矩陣?

感謝

回答

22

使用numpy,你可以使用np.corrcoef

In [88]: import numpy as np 

In [89]: np.corrcoef([[0.1, .32, .2, 0.4, 0.8], [.23, .18, .56, .61, .12], [.9, .3, .6, .5, .3], [.34, .75, .91, .19, .21]]) 
Out[89]: 
array([[ 1.  , -0.35153114, -0.74736506, -0.48917666], 
     [-0.35153114, 1.  , 0.23810227, 0.15958285], 
     [-0.74736506, 0.23810227, 1.  , -0.03960706], 
     [-0.48917666, 0.15958285, -0.03960706, 1.  ]]) 
+0

謝謝。對於我的實際應用程序,我收到以下錯誤AttributeError:'int'object has no attribute'corrcoef' – user1964587

+1

聽起來像您已將'np'定義爲'int'。上面,'numpy'已經被導入爲'np'。你需要消除這兩者的歧義。 – unutbu

+0

如何繪製相關矩陣。我嘗試過以下函數imshow(corr_matrix,interpolation ='bilinear') colorbar() show() 圖形矩陣的原點是(0,n)而不是(0,0)。我怎樣才能做到這一點。矩陣的尺寸是5000X5000 – user1964587

0

下面是計算使用Python一個相關性矩陣形式的多個時間序列的pretty good example。包含的源代碼使用Pandas,NumPy和matplotlib計算一組外匯貨幣對的相關矩陣,以生成相關圖。

樣本數據是一組歷史數據文件,輸出是單個相關矩陣和圖。該代碼是非常有據可查的。

8

如果您不想再次編寫矩陣,也可以使用np.array。

import numpy as np 
a = np.array([ [0.1, .32, .2, 0.4, 0.8], [.23, .18, .56, .61, .12], [.9, .3, .6, .5, .3], [.34, .75, .91, .19, .21]]) 
b = np.corrcoef(a) 
print b