【发布时间】:2014-05-26 11:20:20
【问题描述】:
我试图实现这里给出的numpy.cov() 函数:numpy cov (covariance) function, what exactly does it compute?,但我得到了一些奇怪的结果。请纠正我:
import numpy as np
def my_covar(X):
X -= X.mean(axis=0)
N = X.shape[1]
return np.dot(X, X.T.conj())/float(N-1)
X = np.asarray([[1.0,1.0],[2.0,2.0],[3.0,3.0]])
## Run NumPy's implementation
print np.cov(X)
"""
NumPy's output:
[[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]]
"""
## Run my implementation
print my_covar(X)
"""
My output:
[[ 2. 0. -2.]
[ 0. 0. 0.]
[ -2. 0. 2.]]
"""
出了什么问题?
【问题讨论】:
-
有哪些错误和结果,您有什么期望?
-
对于那些忘记了统计类并想知道这里出了什么问题的人:正确的结果是
np.cov(x),而用户的结果是不正确的。 -
这个问题应该重新打开。它包含代码、所需结果和参考资料。可惜我对这个主题的了解不足以回答自己。
标签: python numpy covariance