隨機數生成

numpy.random模塊對Python內置的random進行了補充,增長了一些用於高效生成多種機率分佈的樣本值的函數。如能夠用normal來獲得一個標準正態分佈的4*4的樣本數組:數組

In [1]: import numpy as np

In [2]: samples=np.random.sample(size=(4,4))

In [3]: samples
Out[3]:
array([[0.28705967, 0.44072192, 0.9762484 , 0.13830485],
       [0.74047263, 0.97749408, 0.69630957, 0.29841462],
       [0.54948539, 0.39314335, 0.75565134, 0.02123291],
       [0.46449012, 0.21270412, 0.04491115, 0.1163004 ]])

而Python內置的random模塊則只能一次生成一個樣本值。從下面的測試結果能夠看到,若是須要產生大量的樣本值,numpy.random模塊快了不止一個數量級:dom

In [9]: %timeit samples=[normalvariate(0,1) for _ in range(N)]
167 ms ± 1.71 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

In [10]: %timeit np.random.normal(size=N)
6.41 ms ± 122 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

 

numpy.random函數:函數

seed:肯定隨機數生成器的種子oop

permutation:返回一個序列的隨機排列或返回一個隨機排列的範圍測試

shuffle:對一個序列就地隨機排列spa

rand:產生均勻分佈的樣本值code

randint:從給定的上下限範圍內隨機選取整數orm

randn:產生正態分佈(平均值爲0,標準差爲1)的樣本值,相似MATLAB接口blog

binomial:產生二項分佈的樣本值接口

normal:產生正態分佈的樣本值

beta:產生Beta分佈的樣本值

chisquare:產生卡方分佈的樣本值

gamma:產生Gamma分佈的樣本值

uniform:產生在[0,1]中均勻分佈的樣本值

相關文章
相關標籤/搜索