numpy.cov()返回意外输出

时间:2017-07-16 23:13:15

标签: python numpy covariance

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

1 个答案:

答案 0 :(得分:1)

方法cov计算您提供的所有变量对的协方差。一个数组中有9个变量,另一个数组中有9个变量。这总共18个。所以你得到18乘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]:]