2016-01-26 40 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)