2016-01-26 76 views
0

我的數據具有以下形狀:18x60x4 基本上,我有18個變量,每個變量由60個點向量描述。 我有4個示例數據點爲每個向量。如何計算n維變量之間的協方差

當我打電話np.cov(數據集)我得到以下錯誤:

shapes (18,60,4) and (4,60,18) not aligned: 4 (dim 2) != 60 (dim 1) 

我怎樣才能解決這個問題?我找不到類似的帖子。

謝謝。

+0

可以包括代碼,可以重現這個錯誤? (最好是最低限度) –

+0

如果你看看'help(mp.cov)'它確實需要一維或二維矩陣,試着看看numpy上的其他文檔,看看你是否在尋找什麼 –

回答

0

我認爲你應該把18個60維變量當作18*60=1080變量。然後你可以計算協方差。如果m是你(18,60,4)陣列做到以下幾點:

covar = np.cov(m.reshape(18*60, 4)) #or np.cov(m.reshape(18*60, -1)) 

然後你就可以重塑再次柯閥,以便它顯示你的變量的維度:

covar = covar.reshape(18,60,18,60)