從多元正態分佈中抽取隨機樣本。數組
多元正態分佈,多正態分佈或高斯分佈是一維正態分佈向更高維度的推廣。這種分佈由其均值和協方差矩陣來肯定。這些參數相似於一維正態分佈的平均值(平均值或「中心」)和方差(標準差或「寬度」,平方)。dom
np.random.multivariate_normal方法用於根據實際狀況生成一個多元正態分佈矩陣,其在Python3中的定義以下:函數
def multivariate_normal(mean, cov, size=None, check_valid=None, tol=None)
mean:多元正態分佈的維度。(長度爲N的一維數組)spa
示例:mean = [0, 0] # 1行2列的一維數組,numpy.ramdom.randn()能夠生成一維矩陣。code
cov:多元正態分佈的協方差矩陣,且協方差矩陣必須是對稱矩陣和半正定矩陣(形狀爲(N,N)的二維數組)。orm
示例:cov = [[1. 0.], [0. 1.]] # 能夠使用numpy.eye()生成對角矩陣。blog
size: 數組的形狀(整數或者由整數構成的元組)。若是該值未給定,則返回單個N維的樣本(N偏偏是上面mean的長度)。utf-8
示例:size = (3, 3) # 生成的數組的每個元素是3行3列的矩陣。class
check_valid: 當協方差(上面的cov)矩陣不是半正定矩陣時,程序的處理方式(一共有三種方式:{ ‘warn’, ‘raise’, ‘ignore’ })。igore:忽略協方差矩陣不是半正定矩陣的問題,生成數組。warn:輸出警告,可是仍是會生成數組。raise:程序報錯,且不會生成數組,。import
tol:當協方差矩陣只有一個值時,生成的公差(浮點數)。
函數示例:
# -*- 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]]] """