2017-07-16 66 views
1

我有一个X数据集有9个功能和683行(683x9)。我想采用这个X数据集的协方差矩阵和另一个与X具有相同形状的数据集。我使用np.cov(originalData, generatedData, rowvar=False)代码来得到它,但它返回形状为18x18的协方差矩阵。我期望得到9x9的协方差矩阵。你能帮我解决它吗?numpy.cov()返回意外输出

+0

除非您可以更具体地了解这里发生了什么,这不是一个可以回答的问题。一个*最小*的例子,证明你的问题,并帮助他人重现它是最好的。 – tadman

回答

1

方法cov计算的协方差全部您给它的变量对。一个数组中有9个变量,另一个数组中有9个变量。总共是18。所以你得到18乘18矩阵。 (在引擎盖下,在计算协方差之前,cov将您给出的两个数组连接起来)。

如果你只从与第2变量的第1个数组变量的协方差兴趣,挑行上半年和下半年的列:

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

或者在一般情况下,与两个不一定相等的矩阵X和Y,

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