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這個函數更加通用,且名字好記,建議平時使用這個函數生成正態分布。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM