python - 内置计算协方差的函数

标签 python numpy scipy covariance

python中有没有办法在给定均值和样本数据点的情况下获得协方差矩阵

例子:

mean = [3 3.6]
data = [[1 2]
        [2 3]
        [3 3]
        [4 5] 
        [5 5]]

我知道如何通过在公式中代入这些值来计算相同值。但是在 python 中是否有一个内置函数可以为我做这个。我知道在 Matlab 中有一个,但我不确定 python。

最佳答案

numpy.cov()可用于计算协方差矩阵:

In [1]: import numpy as np

In [2]: data = np.array([[1,2], [2,3], [3,3], [4,5], [5,5]])

In [3]: np.cov(data.T)
Out[3]: 
array([[ 2.5,  2. ],
       [ 2. ,  1.8]])

默认情况下,np.cov() 期望每一行代表一个变量,在列中包含观察值。因此,我不得不转置您的矩阵(通过使用 .T)。

实现相同目的的另一种方法是将 rowvar 设置为 False:

In [15]: np.cov(data, rowvar=False)
Out[15]: 
array([[ 2.5,  2. ],
       [ 2. ,  1.8]])

关于python - 内置计算协方差的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9923267/

相关文章:

python - numpy.savez 和 numpy.savez_compressed 使用 pickle 吗?

python - 精确的计算和绘图

python - 调试 Python/NumPy 内存泄漏

python - GAE 上的错误代码 203

python - Django 消息拒绝显示

python - 无法将所有文件移动到新文件夹

python - 如何使用 pyplot 旋转绘图 x 轴和 y 轴

python - Pandas 有条件创建系列/数据框列

python - Numpy:如何为多维数组的各个元素赋值?

python - 将稀疏矩阵行转换为密集泄漏内存