Python的numpy庫中rand(),randn(),randint(),random_integers()的使用


1.numpy.random.rand()
用法是:numpy.random.rand(d0,d1,…dn)
以給定的形狀創建一個數組,並在數組中加入在[0,1]之間均勻分布的隨機樣本。
用法及實現

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

 

>>>np.random.rand(5)
array([ 0.26677034,  0.01680242,  0.5164905 ,  0.70920141,  0.30438513])

2.numpy.random.randn()
用法是:numpy.random.rand(d0,d1,…dn)
以給定的形狀創建一個數組,數組元素來符合標准正態分布N(0,1)
若要獲得一般正態分布這里寫圖片描述則可用sigma * np.random.randn(…) + mu進行表示
用法及實現:  

>>> a = np.random.randn(2, 4)
>>> a
array([[-0.29188711,  0.76417681,  1.00922644,  0.34169581],
       [-0.3652463 , -0.9158214 ,  0.34467129, -0.31121017]])
>>> b = np.random.randn(2)
>>> b
array([ 0.37849173,  1.14298464])

3.numpy.random.randint()
用法是:numpy.random.randint(low,high=None,size=None,dtype)
生成在半開半閉區間[low,high)上離散均勻分布的整數值;若high=None,則取值區間變為[0,low)
用法及實現
high=None的情形

>>> a = np.random.randint(2, size=10)
>>> a
array([0, 1, 0, 1, 1, 0, 1, 0, 0, 1])
>>> b = np.random.randint(1, size=10)
>>> b
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
>>> c =  np.random.randint(5, size=(2, 4))
>>> c
array([[3, 4, 3, 3],
       [3, 0, 0, 1]])

high≠None

d = np.random.randint(2,high=6,size=(2,4))
>>> d
array([[5, 2, 4, 2],
       [4, 3, 5, 4]])

4.numpy.random.random_integers()
用法是: numpy.random.random_integers(low,high=None,size=None)
生成閉區間[low,high]上離散均勻分布的整數值;若high=None,則取值區間變為[1,low]
用法及實現
high=None的情形

>>> np.random.random_integers(1, 6, 10)
array([4, 5, 2, 3, 4, 2, 5, 4, 5, 4])
>>> np.random.random_integers(6)
5
>>> np.random.random_integers(6,size=(3,2))
array([[1, 3],
       [5, 6],
       [3, 4]])

 

high≠None的情形

>>> c =  np.random.random_integers(6,high=8,size=(3,2))
>>> c
array([[7, 8],
       [7, 8],
       [8, 8]])

此外,若要將【a,b】區間分成N等分,也可以用此函數實現
a+(b-a)*(numpy.random.random_integers(N)-1)/(N-1)

5.numpy.random_sanmple()
用法是: numpy.random.random_sample(size=None)
以給定形狀返回[0,1)之間的隨機浮點數
用法及實現

>>> np.random.random_sample()
0.2982524530687424
>>> np.random.random_sample((5,))
array([ 0.47989216,  0.12580015,  0.99624494,  0.14867684,  0.56981553])
>>> np.random.random_sample((2,5))
array([[ 0.00659559,  0.45824325,  0.13738623,  0.60766919,  0.39234638],
       [ 0.6914948 ,  0.92461145,  0.43289058,  0.63093292,  0.06921928]])

其他函數,numpy.random.random() ;numpy.random.ranf()
numpy.random.sample()用法及實現都與它相同

6.numpy.random.choice()
用法是: numpy.random.choice(a,size=None,replace=True,p=None)
若a為數組,則從a中選取元素;若a為單個int類型數,則選取range(a)中的數
replace是bool類型,為True,則選取的元素會出現重復;反之不會出現重復
p為數組,里面存放選到每個數的可能性,即概率
用法及實現

>>>a =  np.random.choice(5, 3)
>>> a
array([4, 3, 1])
>>>b =  np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
>>> b
array([2, 3, 3], dtype=int64)
>>> c =  np.random.choice(5, 3, replace=False, p=[0.1, 0, 0.3, 0.6, 0])
>>> c
array([3, 2, 0])

 

 


免責聲明!

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



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