摘要:randn,standard_normal, normal這三個函數都可以返回隨機正態分布的數組, 它們是從特殊到一般的形式。normal這個函數更加通用,且名字好記,建議平時使用這個函數生成正態分布。
這三個函數都可以返回隨機正態分布(高斯Gaussian 分布)的數組,都可以從numpy.random中導出,先看三個函數的參數方式:
randn: randn
(d0, d1, ..., dn),
返回shape為(d0, d1, ..., dn)的標准正態分布(均值為0,標准差為1)的數組
standard_normal: standard_normal
(size=None),
跟randn一樣,也是返回標准正態分布的數組,不同的是它的shape由size參數指定,對於多維數組,size必須是元組形式;
normal: normal
(loc=0.0, scale=1.0, size=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.0, scale=1.0),
考慮到normal這個函數更加通用,且名字好記,建議平時使用這個函數生成正態分布。