【问题标题】:octave cov function with python (numpy?) [duplicate]带有python的octave cov函数(numpy?)[重复]
【发布时间】:2020-06-27 04:32:16
【问题描述】:

我正在尝试复制 cov 函数,因为它在倍频程中工作:https://octave.sourceforge.io/octave/function/cov.html

在哪里给出:

F = [[3,4,5],[5,4,3],[1,1,1]]

Octave 函数将返回:

cov(F)

ans =

   4   3   2
   3   3   3
   2   3   4

虽然 numpy 函数 cov https://numpy.org/doc/stable/reference/generated/numpy.cov.html 的工作方式不同。它返回:

np.cov(F)

array([[ 1., -1.,  0.],
       [-1.,  1.,  0.],
       [ 0.,  0.,  0.]])

如果我阅读了两个文档都应该计算协方差矩阵,我错过了什么?

【问题讨论】:

    标签: python numpy octave


    【解决方案1】:

    Octave's cov 将行视为观察值,将列视为变量:

    如果x和y的每一行都是一个观察值,每一列都是一个变量……

    numpy.cov 默认为相反的行为:

    rowvar : bool,可选

    如果 rowvar 为 True(默认),则每一行代表一个变量,列中包含观察值。否则,关系被转置:每列代表一个变量,而行包含观察值。

    在调用 numpy.cov 时指定 rowvar=False 以获取 Octave 行为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      • 1970-01-01
      • 2017-06-30
      • 1970-01-01
      • 1970-01-01
      • 2014-10-03
      • 1970-01-01
      相关资源
      最近更新 更多