【问题标题】:numpy.cov() returns unexpected outputnumpy.cov() 返回意外的输出
【发布时间】:2017-07-17 09:06:59
【问题描述】:

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

【问题讨论】:

  • 除非您能更具体地了解这里发生了什么,否则这不是一个可以回答的问题。一个最小的例子来展示你的问题并帮助其他人重现它是最好的。

标签: python numpy covariance


【解决方案1】:

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]:]

【讨论】:

    猜你喜欢
    • 2015-08-19
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-31
    • 2015-01-31
    • 2015-11-10
    相关资源
    最近更新 更多