我有9个不同的numpy数组表示相同的数量,在我们的例子xi
。它们各自长度为19,即它们已被装箱。
这9个阵列之间的区别在于,它们是使用折刀重采样计算的,即每次省略一些元素并重复相同的9次。
我现在想计算协方差矩阵,其大小应为19x19。此协方差矩阵的对角线元素的平方根应该为每个箱子(总共19个箱子)提供此数量的误差( xi
)。
协方差矩阵的等式由下式给出:
此处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.
答案 0 :(得分:1)
正如您在docs的示例中所看到的,输出的形状等于行的平方数。因此,当你有9行时,你得到一个9x9矩阵
如果您希望使用19x19矩阵,那么您可能会混合列和行,并且应该使用transpose
vst = np.vstack((array1,array2,....,array9))
cov_matrix = np.cov(vst.T)