【问题标题】:Build in function for computing covariance用于计算协方差的内置函数
【发布时间】:2012-03-29 18:25:23
【问题描述】:

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

例子:

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

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

【问题讨论】:

    标签: python numpy scipy covariance


    【解决方案1】:

    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]])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-31
      • 1970-01-01
      • 1970-01-01
      • 2018-08-25
      • 2011-11-25
      相关资源
      最近更新 更多