numpy.random.multivariate_normal()函数解析

一.基本概念

1.1函数作用

从多元正态分布中生成随机抽样,组成一个N维的数组。并返回该数组。

 1.2函数定义

numpy.random.multivariate_normal(mean, cov[, size, check_valid, tol])¶

mean:多元正态分布的维度。(长度为N的一维数组)

示例:mean = [0, 0]  # 1行2列的一维数组,numpy.ramdom.randn()可以生成一维矩阵。

cov:多元正态分布的协方差矩阵,且协方差矩阵必须是对称矩阵和半正定矩阵(形状为(N,N)的二维数组)。

示例:cov = [[1. 0.],  [0. 1.]]  # 可以使用numpy.eye()生成对角矩阵。

size: 数组的形状(整数或者由整数构成的元组)。如果该值未给定,则返回单个N维的样本(N恰恰是上面mean的长度)。

示例:size = (3, 3) # 生成的数组的每一个元素是3行3列的矩阵。

check_valid: 当协方差(上面的cov)矩阵不是半正定矩阵时,程序的处理方式(一共有三种方式:{ ‘warn’, ‘raise’, ‘ignore’ })。igore:忽略协方差矩阵不是半正定矩阵的问题,生成数组。warn:输出警告,但是还是会生成数组。raise:程序报错,且不会生成数组,。

tol:当协方差矩阵只有一个值时,生成的公差(浮点数)。

1.3函数示例

# -*- coding:utf-8 -*-
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.90692543  0.62903795]
  [ 0.82555536  1.50642889]]

 [[-0.93568255  1.34735664]
  [-1.26203814  0.37840301]]]

"""

 

二.参考资料

[1]维基百科,多元正太分布:https://zh.wikipedia.org/wiki/%E5%A4%9A%E5%85%83%E6%AD%A3%E6%80%81%E5%88%86%E5%B8%83

[2]numpy官网:https://docs.scipy.org/doc/numpy-1.15.1/reference/generated/numpy.random.multivariate_normal.html

[3]维基百科, 协方差矩阵:https://zh.wikipedia.org/wiki/%E5%8D%8F%E6%96%B9%E5%B7%AE

[4]维基百科,正定矩阵:https://zh.wikipedia.org/wiki/%E6%AD%A3%E5%AE%9A%E7%9F%A9%E9%98%B5

你可能感兴趣的:(AI,numpy)