使用np.cov的9个阵列的协方差矩阵

时间:2015-04-24 11:30:50

标签: python numpy matrix covariance

我有9个不同的numpy数组表示相同的数量,在我们的例子xi 。它们各自长度为19,即它们已被装箱

这9个阵列之间的区别在于,它们是使用折刀重采样计算的,即每次省略一些元素并重复相同的9次。

我现在想计算协方差矩阵,其大小应为19x19。此协方差矩阵的对角线元素的平方根应该为每个箱子(总共19个箱子)提供此数量的误差( xi )。

协方差矩阵的等式由下式给出: enter image description here

此处xi是数量。 i and j是长度为19的垃圾箱。

我确实不想编写手动代码,因此我尝试使用numpy.cov

vstack = np.vstack((array1,array2,....,array9))

cov = np.cov(vstack)

这给了我一个9x9而不是19x19的矩阵。

这里的错误是什么?每个数组,即array1, array2...etc all are of length 19.

1 个答案:

答案 0 :(得分:1)

正如您在docs的示例中所看到的,输出的形状等于行的平方数。因此,当你有9行时,你得到一个9x9矩阵

如果您希望使用19x19矩阵,那么您可能会混合列和行,并且应该使用transpose

vst = np.vstack((array1,array2,....,array9))

cov_matrix = np.cov(vst.T)
相关问题