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 多元正态分布

 

posted @ 2020-09-26 16:20  Picassooo  阅读(7680)  评论(2编辑  收藏  举报