scipy.stats.multivariate_normal.pdf()用于计算多元正态分布的概率密度函数,而scipy.stats.normal.pdf()计算单变量正态分布的概率密度函数。
对于单变量正态分布,可以使用scipy.stats.norm来进行计算,如下所示:
from scipy.stats import norm
import numpy as np
x = np.linspace(-5, 5, num=100)
pdf = norm.pdf(x, loc=0, scale=1)
对于多元正态分布,需要使用scipy.stats.multivariate_normal,如下所示:
from scipy.stats import multivariate_normal
import numpy as np
#定义均值和协方差矩阵
mean = [0, 0]
cov = [[1, 0], [0, 1]]
#生成一个二维正态分布的实例
rv = multivariate_normal(mean=mean, cov=cov)
#计算概率密度函数
x, y = np.mgrid[-5:5:.1, -5:5:.1]
pos = np.empty(x.shape + (2,))
pos[:, :, 0] = x
pos[:, :, 1] = y
pdf = rv.pdf(pos)
这里的pdf返回一个二维数组,表示二维上每个点的概率密度。