我有一个X数据集,其中包含9个要素和683行(683x9)。我想获取此X数据集和与X具有相同形状的另一个数据集的协方差矩阵。我使用np.cov(originalData, generatedData, rowvar=False)代码获取它,但它返回了形状为18x18的协方差矩阵。我期望得到9x9的协方差矩阵。您能帮我修复它吗?

最佳答案

方法cov计算您提供的所有变量对的协方差。在一个数组中有9个变量,在另一个数组中有9个变量。总共18个。这样就得到18 x 18矩阵。 (在后台,cov在计算协方差之前将给出的两个数组连接起来)。

如果您只对第一个数组中的变量与第二个数组中的变量的协方差感兴趣,请选择行的前半部分和列的后半部分:

C = np.cov(originalData, generatedData, rowvar=False)[:9, 9:]


或者一般来说,对于两个不一定相等的矩阵X和Y,

C = np.cov(X, Y, rowvar=False)[:X.shape[1], Y.shape[1]:]

关于python - numpy.cov()返回意外的输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45134122/

10-12 21:48