Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么numpys的协方差和我的完全不同?_Python_Numpy_Covariance - Fatal编程技术网

Python 为什么numpys的协方差和我的完全不同?

Python 为什么numpys的协方差和我的完全不同?,python,numpy,covariance,Python,Numpy,Covariance,我用以下公式计算协方差: np.dot(X_zero_mean, X_zero_mean.T) / (X_zero_mean.shape[0] -1) 并将其与 np.cov(X_zero_mean.T) 我都将生成的矩阵打印到控制台,并从中创建一个数字,但它们并不相同。为什么?这可能是因为cov避免了一些数值上的错误,就像我上面的公式所发生的那样? 第一个是我的协方差,第二个是numpy cov: 如果没有精确的矩阵,很难判断,但我猜这是因为在将矩阵传递给np.cov之前,需要对矩阵进行转

我用以下公式计算协方差:

np.dot(X_zero_mean, X_zero_mean.T) / (X_zero_mean.shape[0] -1)
并将其与

np.cov(X_zero_mean.T)
我都将生成的矩阵打印到控制台,并从中创建一个数字,但它们并不相同。为什么?这可能是因为cov避免了一些数值上的错误,就像我上面的公式所发生的那样? 第一个是我的协方差,第二个是numpy cov:
如果没有精确的矩阵,很难判断,但我猜这是因为在将矩阵传递给
np.cov
之前,需要对矩阵进行转置。这也解释了为什么numpy的结果看起来比你的维度高得多
np.cov(X.T)
相当于
np.dot(X.T,X)
,而不是
np.dot(X,X.T)

如果可能的话,你能分享你的输入矩阵吗?不确定是否有用。。。这是一个38*4080的矩阵。离开变换器,它仍然完全关闭。我使用的公式是错误的吗?请用
np.cov(X\u zero\u mean)
更新你的帖子。那么我们也许可以帮助回答这个问题。