我有一个32x96数组array = [32x96]。
当我执行np.cov(array)
时,它将返回32x32数组;或者,如果我转置该数组,它将返回96x96数组。我试图在所有32个试验中找到96个位置之间的协方差。我只是不明白为什么数组是二维的,我认为它将返回一个32或96的一维数组。
答案 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)
所以我相信您想要的是第一行(当然是第一列)。 抱歉,我不知道如何在这里写公式