python - numpy协方差矩阵

标签 python numpy covariance

假设我有两个长度为 25 的向量,我想计算它们的协方差矩阵。我尝试使用 numpy.cov 执行此操作,但总是以 2x2 矩阵结束。

>>> import numpy as np
>>> x=np.random.normal(size=25)
>>> y=np.random.normal(size=25)
>>> np.cov(x,y)
array([[ 0.77568388,  0.15568432],
       [ 0.15568432,  0.73839014]])

使用 rowvar 标志也无济于事 - 我得到完全相同的结果。

>>> np.cov(x,y,rowvar=0)
array([[ 0.77568388,  0.15568432],
       [ 0.15568432,  0.73839014]])

如何获得 25x25 的协方差矩阵?

最佳答案

你有两个向量,而不是 25。我所在的计算机没有 python,所以我无法测试这个,但是试试:

z = zip(x,y)
np.cov(z)

当然....你真正想要的可能更像:

n=100 # number of points in each vector
num_vects=25
vals=[]
for _ in range(num_vects):
    vals.append(np.random.normal(size=n))
np.cov(vals)

这需要 num_vects 1xn 个向量的协方差(我认为/希望)

关于python - numpy协方差矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15036205/

相关文章:

python - 为什么服务器和客户端不同步? ( python 套接字)

python - Pyttsx "run"但没有 "wait"

java - List<List<String>> 是 Collection<Collection<T>> 的实例吗?

python - 将散点数据转换为误差条等于标准差的分箱数据

c# - 通用协变和逆变

python - 计算协方差矩阵——numpy.cov 和 numpy.dot 之间的区别?

如果不在配置文件中,Python ConfigParser 使用默认值

python - 实现具有自定义约束的 Python 求解器

Python:如何创建一个离散化圆的子矩阵?

python - Mac OS X 上的多个 numpy 版本