如何计算n维变量的协方差

时间:2016-01-26 22:32:51

标签: python numpy covariance

我的数据形状如下:18x60x4 基本上,我有18个变量,每个变量用60点矢量描述。 我为每个向量提供了4个示例数据点。

当我调用np.cov(dataset)时,我收到以下错误:

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

我该如何解决这个问题?我找不到类似的帖子。

感谢。

1 个答案:

答案 0 :(得分: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 = covar.reshape(18,60,18,60)