1. 程式人生 > >np.random模組

np.random模組

nump.random.RandomState

uniform(low=0.0, high=1.0, size=None)
low : float or array_like of floats, optional
size : int or tuple of ints, optional
返回值: ndarray or scalar
從一個均勻分佈( [low, high):半開區間)中進行取樣

np.random.uniform(1,2,(2,2))
[[1.62329443 1.38730153]
 [1.90290111 1.90773506]]
<class 'numpy.ndarray'
> np.random.uniform(1,2) 1.8948932223669779 <class 'float'>

np.random.rand: a convenience function for np.random.uniform(0, 1)
建立給定形狀的陣列,並用來自在[0,1)區間的均勻分佈的隨機樣本填充它

 np.random.rand(3,2)
    array([[ 0.14022471,  0.96360618],  #random
           [ 0.37601032,  0.25528411],  #random
           [ 0.49313049,  0.94909878]]
)

numpy.random.randn(d0, d1, …, dn)
d0, d1, …, dn : int, optional
返回值:ndarray or float
從標準正態分佈 N(0,1) 中返回對應的陣列或浮點數
如要從這裡寫圖片描述返回對應的陣列或浮點數,
應這樣寫sigma * np.random.randn(…) + mu

這裡寫圖片描述
標準正態分佈曲線下面積分佈規律是:
在-1.96~+1.96範圍內曲線下的面積等於0.9500(即取值在這個範圍的概率為95%),在-2.58~+2.58範圍內曲線下面積為0.9900(即取值在這個範圍的概率為99%).
因此,由 np.random.randn()函式所產生的隨機樣本基本上取值主要在-1.96~+1.96之間,當然也不排除存在較大值的情形,只是概率較小而已。

np.random.randn()
2.1923875335537315 
np.random.randn(2,3)
array([[ 2.70467482  1.56520692 -0.94020936]
       [ 0.37279013  0.52813483 -2.38238942]])

從N(3, 6.25)正態分佈中取值
2.5 * np.random.randn() + 3
2.5830743542241477
2.5 * np.random.randn(2, 4) + 3
array([[-4.49401501,  4.00950034, -1.81814867,  7.29718677], 
       [ 0.39924804,  4.68456316,  4.99394529,  4.84057254]])