numpy np.random生成隨機數


1.生成指定形狀0-1之間的隨機數 :np.random.random()和np.random.rand()

注意:np.random.random()如果要生成多維數據時需要傳入一個數組(tuple類型),而np.random.rand()可以直接傳入

#生成0-1之間的隨機數
import numpy as np
np.random.random(100)
np.random.rand(100)

#區別
np.random.random((3,4))  #需要以數組形式傳入
np.random.rand(3,4)

 

2.生成指定范圍內的隨機整數np.random.randint(low=,higt=,size=,dtype=)

low和hight代表指定范圍內的最大值和最小值

size可以時數組的元素個數也可以是數組的維數,如size=(2,3),即是生成一個2行3列的數據

dtype只能寫np.int32或者是np.int64

#如果只傳入一個參數,則取該范圍內的某一個數據
np.random.randint(10)  

#不然就得傳入三個參數,dtype可以不傳入
np.random.randint(0,100,(3,4))

 

3.與正態分布有關的函數,np.random.randn()和np.random.normal()

區別:np.random.randn() 生成服從標准正態分布,可以傳n個參數,代表着維數

np.random.normal(loc,scale,size) 生成指定均值和標准差的正態分布隨機數,參數分別代表着均值標准差和隨機數的個數,只能生成一維數組,可以配合reshape()使用

np.random.randn(3)  #返回三個值
np.random.randn(3,4)

np.random.normal(10)  #只返回一個值
np.random.normal(2,0.5,10).reshape(2,5)

 

4.均勻分布 np.random.uniform()

numpy.random.uniform(low,high,size)

從一個均勻分布[low,high)中隨機采樣,注意定義域是左閉右開,即包含low,不包含high

參數介紹:

  1. low: 采樣下界,float類型,默認值為0;
  2. high: 采樣上界,float類型,默認值為1;
  3. size: 輸出樣本數目,為int或元組(tuple)類型,例如,size=(m,n,k), 則輸出m*n*k個樣本,缺省時輸出1個值

返回值:ndarray類型,其形狀和參數size中描述一致。

np.random.uniform(10)  #返回一個值
np.random.uniform(1,10,10)  #返回一個一維數組
np.random.uniform(1,10,(2,3))  #返回一個二維數組

 

5.np.random.seed()按照種子來生成隨機數,種子一樣,隨機數結果一致

#不管執行多少回結果都一樣
np.random.seed(10)
np.random.rand(10)

 

6.np.random.shuffle()打亂數組元素順序

a=np.arange(10)
np.random.shuffle(a)  #輸出的順序被打亂了

 

7.np.random.choice()按照指定概率從指定數組中,生成隨機數

#進行10000次擲硬幣實驗
l=[0,0]
for i in range(10000):
    f=np.random.choice([0,1],p=[0.5,0.5])
    l[f]=l[f]+1
p=l[0]/(l[0]+l[1])

參數表述0被抽到的概率為0.5;1同理

 


免責聲明!

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



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