Numpy中的三個常用正態分佈函式randn,standard_normal, normal的區別
摘要:randn,standard_normal, normal這三個函式都可以返回隨機正態分佈的陣列, 它們是從特殊到一般的形式。normal這個函式更加通用,且名字好記,建議平時使用這個函式生成正態分佈。
這三個函式都可以返回隨機正態分佈(高斯Gaussian 分佈)的陣列,都可以從numpy.random中匯出,先看三個函式的引數方式:
randn: randn
(d0, d1, ..., dn),
返回shape為(d0, d1, ..., dn)的標準正態分佈(均值為0,標準差為1)的陣列
standard_normal: standard_normal
跟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這個函式更加通用,且名字好記,建議平時使用這個函式生成正態分佈。
&n