Python3 np.cov 给出奇怪的结果

Python3 np.cov giving strange result

import numpy as np    

X = np.arange(6).reshape(2,3)
np.cov(X)

#Results in:
array([[1., 1.],
       [1., 1.]])

虽然它应该输出:

array([[0.66666667, 0.66666667],
       [0.66666667, 0.66666667]])

如评论中所述,默认值 covN-1 归一化,这是一个无偏估计。要获得简单平均值,您可以执行以下任一解决方案:

np.cov(X,bias=True)

np.cov(X,ddof=0)

输出:

[[0.66666667 0.66666667]
 [0.66666667 0.66666667]]