You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

scipy.stats.multivariate_normal与numpy.random.multivariate_normal的区别及理解验证

关于scipy.stats.multivariate_normal.pdf与numpy.random.multivariate_normal的区别

你的部分观察是对的,但关于scipy函数的作用理解存在偏差,具体区分如下:

核心差异梳理

  • scipy.stats.multivariate_normal.pdf(x, mean, cov):必须传入数据点/数据集x,它的作用是计算给定x在指定均值(mean)、协方差(cov)的多元高斯分布下的概率密度值,而非拟合高斯分布。简单说就是:已知一个多元高斯分布,求某个点在这个分布上的密度高低。
  • numpy.random.multivariate_normal(mean, cov, size=None):不需要传入已有数据x,它的作用是根据指定的mean和cov,生成符合该多元高斯分布的随机样本,也就是从头造出一批符合分布的数据。

具体示例

1. scipy.stats.multivariate_normal.pdf的使用

import scipy.stats as stats

# 定义一个二元高斯分布:均值[0,0],单位协方差矩阵
mean = [0, 0]
cov = [[1, 0], [0, 1]]
# 计算点(1,2)在该分布下的概率密度值
x = [1, 2]
pdf_value = stats.multivariate_normal.pdf(x, mean=mean, cov=cov)
print(pdf_value)  # 输出该点的概率密度数值

2. numpy.random.multivariate_normal的使用

import numpy as np

# 同样定义二元高斯分布:均值[0,0],单位协方差矩阵
mean = [0, 0]
cov = [[1, 0], [0, 1]]
# 生成100个符合该分布的二维样本点
samples = np.random.multivariate_normal(mean=mean, cov=cov, size=100)
print(samples.shape)  # 输出(100, 2),即100个二维样本

内容的提问来源于stack exchange,提问作者CharlieCCC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 09:04:57