八度cov函数与python(numpy?)

时间:2020-06-26 20:23:57

标签: python numpy octave

我正在尝试复制cov函数,使其以八度运行:https://octave.sourceforge.io/octave/function/cov.html

在给出的位置:

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

八度音色函数将返回:

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.]])

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

1 个答案:

答案 0 :(得分:1)

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

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

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

行号:布尔型,可选

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

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