python numpy 生成一个服从多元正态分布的数组
标准正态分布的概率密度公式
正态分布概率密度公式
多元正态分布的概率密度公式
上式为 x 服从 k 元正态分布,x 为 k 维向量;|Σ| 代表协方差矩阵的行列式。
二维正态分布概率密度函数为钟形曲面,等高线是椭圆线族,并且二维正态分布的两个边缘分布都是一维正态分布,如图
numpy生成一个服从多元正态分布的数组
multivariate_normal(mean, cov, size=None, check_valid=None, tol=None)
各参数含义:
- mean:均值,维度为1,必选参数;
- cov:协方差矩阵,必选参数;
- size: 指定生成矩阵的维度,若size=(1, 1, 2),则输出的矩阵的 shape 即形状为 1X1X2XN(N为mean的长度);
- check_valid:可取值 warn,raise以及ignore;
- tol:检查协方差矩阵奇异值时的公差,float类型。
示例:
import numpy as np import matplotlib.pyplot as plt mean = (1, 1) cov = np.array([[0.1, 0], [0, 1]]) x = np.random.multivariate_normal(mean, cov, (500,), 'raise') # nx2 plt.scatter(x[:, 0], x[:, 1]) plt.xlim(-3, 5) plt.ylim(-3, 5) plt.show()
运行结果:
参考资料
[1] multivariate_normal 多元正态分布