【问题标题】:Correct way of computing a covariance matrix of two matrices with different number of features and same number of observations计算具有不同特征数量和相同观察数量的两个矩阵的协方差矩阵的正确方法
【发布时间】:2016-07-20 00:02:07
【问题描述】:

计算两个矩阵的协方差矩阵的正确方法是(n x p)形状的X和(n x q)形状的Y

import numpy as np

X = np.array([np.random.normal(size=10),
         np.random.normal(size=10),
         np.random.normal(size=10)]).T

Y = np.array([np.random.normal(size=10),
         np.random.normal(size=10),
         np.random.normal(size=10),
         np.random.normal(size=10)]).T

执行np.cov(X,Y) 会返回错误。

np.cov(X.T, Y.T) 没有

这是什么原因?

【问题讨论】:

    标签: python numpy


    【解决方案1】:

    来自文档:

    y : array_like, optional
    
        An additional set of variables and observations.
        y has the same form as that of m.
    

    矩阵的形状不相等。我想 numpy 作者忘记在第一种情况下检查尺寸。我对此没有其他解释。在第一种情况下,计算可能在 Y 的子数组上运行。这可能已经在较新版本的 numpy 中得到修复,或者您可以考虑发送错误报告。

    【讨论】: