gpt4 book ai didi

python - NumPy cov(协方差)函数的简单实现

转载 作者:行者123 更新时间:2023-12-01 05:13:15 26 4
gpt4 key购买 nike

我试图实现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 的行对应于变量,列对应于观察

当您通过减去平均值来居中 X 时,您需要计算观测值的平均值,即 X 的列而不是行:

X -= X.mean(axis=1)[:, None]

关于python - NumPy cov(协方差)函数的简单实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23761604/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com