Numpy中的三个常用正态分布函数randn,standard_normal, normal的区别

Posted luckyboy314

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Numpy中的三个常用正态分布函数randn,standard_normal, normal的区别相关的知识,希望对你有一定的参考价值。

摘要:randn,standard_normal, normal这三个函数都可以返回随机正态分布的数组, 它们是从特殊到一般的形式。normal这个函数更加通用,且名字好记,建议平时使用这个函数生成正态分布。

 

这三个函数都可以返回随机正态分布(高斯Gaussian 分布)的数组,都可以从numpy.random中导出,先看三个函数的参数方式:

randn: randn(d0d1...dn),

返回shape为(d0d1...dn)的标准正态分布(均值为0,标准差为1)的数组

 

standard_normal: standard_normal(size=None),

跟randn一样,也是返回标准正态分布的数组,不同的是它的shape由size参数指定,对于多维数组,size必须是元组形式;

 

normal:  normal(loc=0.0scale=1.0size=None),

更一般的形式,返回均值为loc,标准差为scale的正态分布,shape由size参数决定。

 

可以看出randn,standard_normal, normal三个函数是从特殊到一般, randn是standard_normal的便捷写法,省去了需要将数组shape封装到size参数中,但这个函数的命名和参数方式是从MATLAB中引过来的,跟Numpy的其他函数如zeros,ones参数方式也不同统一,不建议使用。

 

randn和standard_normal都只能返回标准正态分布,对于更一般的正态分布Ν(μ, σ2), 需要使用 σ * np.random.randn(...) + μ

 

normal函数可以直接给出均值和标准差(loc表示均值,scale表示标准差),normal函数默认情况下也是返回标准正态分布(loc=0.0scale=1.0),

考虑到normal这个函数更加通用,且名字好记,建议平时使用这个函数生成正态分布。

 

以上是关于Numpy中的三个常用正态分布函数randn,standard_normal, normal的区别的主要内容,如果未能解决你的问题,请参考以下文章

numpy.random.randn()与rand()的区别

numpy.random之常用函数

numpy中np.random.seed()的详细用法

Numpy基础(day2)随机函数及统计函数

Numpy基础(day2)随机函数及统计函数

python--numpy生成正态分布数据及randint randn normal的使用