np.random.multivariate_normal(mean, cov, size=None, check_valid='warn', tol=1e-8)
描述
从多元正态分布中抽取随机样本,组成一个N维的数组。并返回该数组。
参数
mean : 1-D array_like, of length N
n维分布的平均值
cov : 2-D array_like, of shape (N, N)
分布的协方差矩阵
协方差矩阵必须是对称的且半正定矩阵的
size : int or tuple of ints, optional
给定例如(m,n,k)的形状,将生成m * n * k个样本,并以m×n×k的方式打包。
因为每个样本都是N维的,所以输出形状为(m,n,k,N)。
如果未指定形状,则返回单个(N-D)样本。
check_valid : { ‘warn’, ‘raise’, ‘ignore’ }, optional
这个参数用于决定当cov即协方差矩阵不是半正定矩阵时程序的处理方式,它一共有三个值:warn,raise以及ignore。
当使用warn作为传入的参数时,如果cov不是半正定的程序会输出警告但仍旧会得到结果;
当使用raise作为传入的参数时,如果cov不是半正定的程序会报错且不会计算出结果;
当使用ignore时忽略这个问题即无论cov是否为半正定的都会计算出结果
tol : float, optional
检查协方差矩阵奇异值时的公差,float类型。
当协方差矩阵只有一个值时,生成的公差(浮点数)
案例
import numpy as np
mean = np.random.randn(2)
cov = np.eye(2)
size = (2, 2)
result = np.random.multivariate_normal(mean, cov, size)
print(result)
[[[-0.60502723 0.29641191]
[-0.91481713 1.29573205]]
[[-0.23393278 -0.3081121 ]
[ 0.81963852 0.70860415]]]