您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關python生產隨機數字的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
python生產隨機數字的方法是:1、利用random庫的randint函數生成隨機整數、uniform函數隨機生成浮點數等;2、利用第三方庫numpy中randn函數生成符合正態分布的隨機矩陣。
在Python中可以用于隨機數生成的有兩種主要途徑,一是random模塊,另一個是numpy庫中random函數。
OUTLINE
random模塊
numpy中的random函數
總結
random模塊
random模塊中將近有7個函數都是可以用來生成隨機數的:
① random.random()
功能:隨機生成一個 [0,1) 的浮點數
用法:
import random number = random.random() # 輸出:0.7178886135325596
② random.uniform(a,b)
功能:隨機生成一個 [a,b) 的浮點數
用法:
number = random.uniform(2,4) # 輸出:2.070517705689751
③ random.randint(a,b)
功能:隨機生成一個 [a,b] 的整數
用法:
number = random.randint(2,4) # 輸出:3
④ random.randrange(a,b,step)
功能:在生成的<以a為始,每step遞增,以b為終>這樣的一個整數序列中隨機選擇一個數
用法:
number = random.randrange(2,10,2) # 輸出:2
⑤ random.choice(sequence)
功能:從一個已有的sequence中隨機選擇一個元素
用法:
number = random.choice(range(2,10)) # 輸出:6 number = random.choice('anbegvdje') # 輸出:g
⑥ random.sample(sequence,k)
功能:從某一序列中獲取指定長度的片段
用法:
a = ['香蕉','蘋果','橘子','眼影','眼線'] b = random.sample(a,2)# 輸出:['橘子', '蘋果']
⑦ random.shuffle(列表)
功能:打亂一個列表的元素順序
用法:
a = ['香蕉','蘋果','橘子','眼影','眼線'] random.shuffle(a) # 打亂這個操作不需要重新定義對象,它作用的是對象本身 # 輸出:['眼線', '蘋果', '眼影', '橘子', '香蕉']
numpy中的random函數
numpy中的random函數可以調用的方法主要有兩種,一種是生成隨機浮點數,二是生成隨機整數。
① np.random.randn(a,b)
功能:生成a*b維的隨機數,且該數服從標準正太分布
用法:
data = np.random.randn(5,4) # 輸出: array([[-1.6101468 , -0.81103612, 0.44875047, 0.55987574], [-0.33322916, 0.18676658, -0.18424432, -0.84435811], [ 0.57654276, 0.28830858, -0.73403656, 1.59404864], [ 0.39009202, 0.86239796, 0.66290243, -0.61292579], [ 0.03081516, 0.99335315, -0.6875357 , 0.90552971]])
② random.randint(low,high,size)
功能:生成一個<以low為下限,high為上限,size大小>的隨機整數矩陣,其中數值范圍包含low,不包含high
用法:
data = np.random.randint(low=2,high=5,size=(5,7)) # 輸出: array([[4, 2, 4, 4, 4, 4, 2], [4, 2, 2, 4, 3, 3, 3], [3, 4, 3, 4, 3, 3, 4], [3, 4, 2, 3, 3, 2, 2], [3, 3, 3, 3, 2, 3, 2]])
1、在我們日常使用中,如果是為了得到隨機的單個數,多考慮random模塊;如果是為了得到隨機小數或者整數的矩陣,就多考慮numpy中的random函數;
2、對于random模塊的函數調用方法的記憶,可以多從它本身的英譯出發,并多比較其不同從而加深理解~
關于python生產隨機數字的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。