有人可以解释numpy.cov的工作原理吗?

时间:2019-06-27 15:02:06

标签: python numpy

我有一个32x96数组array = [32x96]。

当我执行np.cov(array)时,它将返回32x32数组;或者,如果我转置该数组,它将返回96x96数组。我试图在所有32个试验中找到96个位置之间的协方差。我只是不明白为什么数组是二维的,我认为它将返回一个32或96的一维数组。

1 个答案:

答案 0 :(得分:0)

让我们举一个例子,我们可以形象化:

X = np.random.randn(6).reshape(3,2)
#Output
[[ 0.26076539, -0.04107355],
 [ 0.86502104,  0.67499596],
 [ 0.3184734 , -1.57163825]]

C = np.cov(X)
#Output
[[0.04555337, 0.02867848, 0.28525465],
 [0.02867848, 0.01805476, 0.17958431],
 [0.28525465, 0.17958431, 1.78626103]]

如您所见,矩阵是对称的。沿对角线,每个输入列都有方差,其他元素根据逻辑为协方差:

C_{ij} = cov(x_i,x_j)

所以我相信您想要的是第一行(当然是第一列)。 抱歉,我不知道如何在这里写公式