np.random.multivariate_normal方法浅析
从多元正态分布中抽取随机样本。 多元正态分布,多正态分布或高斯分布是一维正态分布向更高维度的推广。这种分布由其均值和协方差矩阵来确定。这些参数类似于一维正态分布的平均值(平均值或“中心”)和方差(标准差或“宽度”,平方)。 ? np.random.multivariate_normal方法用于根据实际情况生成一个多元正态分布矩阵,其在Python3中的定义如下: def multivariate_normal(mean,cov,size=None,check_valid=None,tol=None)
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:当协方差矩阵只有一个值时,生成的公差(浮点数)。 函数示例: # -*- 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,size) print(result) """ [[[ 0.90692543 0.62903795] [ 0.82555536 1.50642889]] [[-0.93568255 1.34735664] [-1.26203814 0.37840301]]] """ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |