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]])
正如评论中提到的,默认的 cov
归一化为 N-1
这是一个无偏的估计。为了得到简单的平均数,你可以用以下两种方法来解决。
np.cov(X,bias=True)
或者
np.cov(X,ddof=0)
输出。
[[0.66666667 0.66666667]
[0.66666667 0.66666667]]