numpy—np.random.multivariate_normal

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]]]

猜你喜欢

转载自blog.csdn.net/weixin_46649052/article/details/113618465