代码之家  ›  专栏  ›  技术社区  ›  Mukesh Gupta

在python的多元正态密度函数中传递二维数据?

  •  2
  • Mukesh Gupta  · 技术社区  · 7 年前

    我想计算二维数据的高斯PDF,我正试图在python中使用 scipy.stats.multivariate_normal

    multivariate_normal 仅用于分析n维中的一维数据,或者我也可以用于我的数据集?

    data set-> X = [X1,X2....Xn] 
    

    Xi=[x1 x2] 
    

    是二维的。

    1 回复  |  直到 7 年前
        1
  •  3
  •   Warren Weckesser    7 年前

    要计算密度函数,请使用 pdf() scipy.stats.multivariate_normal . 第一个参数是数组 X . 接下来的两个参数是分布的均值和协方差矩阵。

    In [72]: import numpy as np
    
    In [73]: from scipy.stats import multivariate_normal
    
    In [74]: mean = np.array([0, 1])
    
    In [75]: cov = np.array([[2, -0.5], [-0.5, 4]])
    
    In [76]: x = np.array([[0, 1], [1, 1], [0.5, 0.25], [1, 2], [-1, 0]])
    
    In [77]: x
    Out[77]: 
    array([[ 0.  ,  1.  ],
           [ 1.  ,  1.  ],
           [ 0.5 ,  0.25],
           [ 1.  ,  2.  ],
           [-1.  ,  0.  ]])
    
    In [78]: p = multivariate_normal.pdf(x, mean, cov)
    
    In [79]: p
    Out[79]: array([ 0.05717014,  0.04416653,  0.05106649,  0.03639454,  0.03639454])