本文简要介绍 python 语言中 numpy.random.multivariate_normal
的用法。
用法:
random.multivariate_normal(mean, cov, size=None, check_valid='warn', tol=1e-8)
从多元正态分布中抽取随机样本。
多元正态分布、多正态分布或高斯分布是一维正态分布向更高维度的推广。这种分布由其均值和协方差矩阵指定。这些参数类似于一维正态分布的均值(平均值或“center”)和方差(标准差或“width,”平方)。
注意
新代码应改为使用
default_rng()
实例的multivariate_normal
方法;请参阅快速入门。- mean: 一维 数组,长度为 N
N 维分布的平均值。
- cov: 2-D 数组,形状 (N, N)
分布的协方差矩阵。它必须是对称的和半正定的才能正确采样。
- size: int 或整数元组,可选
例如,给定一个形状,
(m,n,k)
,m*n*k
生成样本,并打包在一个m-经过-n-经过-k安排。因为每个样本都是N-维,输出形状为(m,n,k,N)
.如果未指定形状,则单个 (N-D) 样品被退回。- check_valid: { ‘warn’, ‘raise’, ‘ignore’ },可选
协方差矩阵不是半正定时的行为。
- tol: 浮点数,可选
检查协方差矩阵中的奇异值时的容差。 cov 在检查前被强制加倍。
- out: ndarray
绘制的样本,形状尺寸,如果提供的话。如果不是,形状是
(N,)
.换句话说,每个条目
out[i,j,...,:]
是从分布中提取的 N 维值。
参数:
返回:
注意:
均值是 N 维空间中的一个坐标,表示最有可能生成样本的位置。这类似于一维或单变量正态分布的钟形曲线的峰值。
协方差表示两个变量一起变化的水平。从多元正态分布中,我们抽取 N 维样本 。协方差矩阵元素 是 和 的协方差。元素 是 (即它的“spread”)的方差。
代替指定完整的协方差矩阵,流行的近似值包括:
通过绘制生成的data-points,可以在二维中看到此几何属性:
>>> mean = [0, 0] >>> cov = [[1, 0], [0, 100]] # diagonal covariance
对角协方差意味着点沿 x 或 y 轴定向:
>>> import matplotlib.pyplot as plt >>> x, y = np.random.multivariate_normal(mean, cov, 5000).T >>> plt.plot(x, y, 'x') >>> plt.axis('equal') >>> plt.show()
请注意,协方差矩阵必须是半正定的(又名nonnegative-definite)。否则,此方法的行为是未定义的,并且不能保证向后兼容性。
参考:
Papoulis, A.,“概率、随机变量和随机过程”,第 3 版,纽约:McGraw-Hill,1991 年。
Duda, R. O.、Hart, P. E. 和 Stork, D. G.,“模式分类”,第 2 版,纽约:Wiley,2001。
1:
2:
例子:
>>> mean = (1, 2) >>> cov = [[1, 0], [0, 1]] >>> x = np.random.multivariate_normal(mean, cov, (3, 3)) >>> x.shape (3, 3, 2)
以下可能是正确的,因为 0.6 大约是标准偏差的两倍:
>>> list((x[0,0,:] - mean) < 0.6) [True, True] # random
相关用法
- Python numpy random.multinomial用法及代码示例
- Python numpy random.mtrand.RandomState.wald用法及代码示例
- Python numpy random.mtrand.RandomState.multivariate_normal用法及代码示例
- Python numpy random.mtrand.RandomState.gumbel用法及代码示例
- Python numpy random.mtrand.RandomState.multinomial用法及代码示例
- Python numpy random.mtrand.RandomState.logistic用法及代码示例
- Python numpy random.mtrand.RandomState.shuffle用法及代码示例
- Python numpy random.mtrand.RandomState.poisson用法及代码示例
- Python numpy random.mtrand.RandomState.seed用法及代码示例
- Python numpy random.mtrand.RandomState.triangular用法及代码示例
- Python numpy random.mtrand.RandomState.weibull用法及代码示例
- Python numpy random.mtrand.RandomState.rand用法及代码示例
- Python numpy random.mtrand.RandomState.power用法及代码示例
- Python numpy random.mtrand.RandomState.randint用法及代码示例
- Python numpy random.mtrand.RandomState.choice用法及代码示例
- Python numpy random.mtrand.RandomState.laplace用法及代码示例
- Python numpy random.mtrand.RandomState.standard_gamma用法及代码示例
- Python numpy random.mtrand.RandomState.permutation用法及代码示例
- Python numpy random.mtrand.RandomState.bytes用法及代码示例
- Python numpy random.mtrand.RandomState.noncentral_f用法及代码示例
- Python numpy random.mtrand.RandomState.rayleigh用法及代码示例
- Python numpy random.mtrand.RandomState.standard_t用法及代码示例
- Python numpy random.mtrand.RandomState.geometric用法及代码示例
- Python numpy random.mtrand.RandomState.dirichlet用法及代码示例
- Python numpy random.mtrand.RandomState.uniform用法及代码示例
注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.random.multivariate_normal。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。