为什么 numpy 的协方差与我的完全不同?

Why is numpys covariance totally different then mine?

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

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)