Python常用隨機(jī)數(shù)函數(shù)總結(jié)

前言

每次用到隨機(jī)數(shù)函數(shù)的時候總是記不清哪個函數(shù)產(chǎn)生什么類型的隨機(jī)數(shù),都要現(xiàn)查。因此寫了這篇總結(jié)文章,以供需要時查閱和復(fù)習(xí)。
首先,用于生成隨機(jī)數(shù)的模塊有兩個:

  • python內(nèi)置的random模塊
  • numpy.random模塊

接下來分別介紹這兩個模塊中的一些常用函數(shù):

一、python內(nèi)置的random模塊

random.random():產(chǎn)生一個0到1范圍內(nèi)的隨機(jī)浮點(diǎn)數(shù)
random.uniform(a, b):產(chǎn)生一個隨機(jī)浮點(diǎn)數(shù)n,a<= n <= b或者b<=n<=a。(此處a和b的相對大小關(guān)系沒有限制)
random.randint(a, b):產(chǎn)生一個隨機(jī)整數(shù)n,a<=n<=b。(此處a必須小于b,否則報錯)
random.choice(sequence):從序列中隨機(jī)獲取一個元素。sequence指元素的集合,可為元組、列表或者字符串。
random.randrange([start,] stop[, step]):在 指定范圍內(nèi),按照指定基數(shù)遞增的集合中 隨機(jī)獲取一個元素

random.sample(sequence, k):從序列中隨機(jī)選取k個元素組成一個新列表。
random.shuffle(list):將列表中的元素隨機(jī)排序。注意此函數(shù)沒有返回值,直接改變list。

舉例:

import random  # 首先導(dǎo)入random包

# 隨機(jī)浮點(diǎn)數(shù)
print(random.random())  
print(random.uniform(10, 20))  # a < b時
print(random.uniform(40, 30))  # a > b時

# 隨機(jī)整數(shù)
print(random.randint(1, 5))

# 隨機(jī)元素
print(random.choice('abcdef'))
print(random.choice( [1, 3, 5, 'ha'] ))
print(random.choice( (2, 4, 6, 'hey') ))

# 選取某范圍內(nèi)的隨機(jī)元素
print(random.randrange(2, 10, 2))  # 在[2, 4, 6, 8]中隨機(jī)選取一個元素,不包括10
print(random.randrange(5))  # 在[1, 2, 3, 4]中隨機(jī)選取一個元素

# 隨機(jī)選取
li = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(random.sample(li, 5))
tu = (11, 12, 13, 14, 15)
print(random.sample(tu, 2))
s = 'helloworld'
print(random.sample(s, 3))

random.shuffle(li)  # 隨機(jī)打亂li中元素的順序
print(li)

二、numpy.random模塊

1、np.random.rand([d0, d1, ..., dn]):返回[0.0, 1.0]之間的隨機(jī)浮點(diǎn)數(shù)或數(shù)組,d0, d1, ...為數(shù)組的維度

# [0.0, 1.0]之間的隨機(jī)浮點(diǎn)數(shù)
print(np.random.rand())

# [0.0, 1.0]之間的隨機(jī)浮點(diǎn)數(shù)組
print(np.random.rand(2, 3))  # 2行3列
print(np.random.rand(2, 2, 3))  # 三維數(shù)組,維度為(2, 2, 3)

運(yùn)行結(jié)果如下:

2、np.random.randn([d0, d1, ..., dn]) :返回標(biāo)準(zhǔn)正態(tài)分布樣本值

# 正態(tài)分布隨機(jī)樣本值
print(np.random.randn())

# 正態(tài)分布隨機(jī)樣本數(shù)組
print(np.random.randn(2, 3))  # 2行3列
print(np.random.randn(2, 2, 3))  # 三維數(shù)組,維度為(2, 2, 3)

運(yùn)行結(jié)果如下:

3、np.random.randint([low,] high[, size]) :返回隨機(jī)整數(shù),位于半開區(qū)間 [low, high)

# 隨機(jī)整數(shù)
print(np.random.randint(10))  # 返回一個小于10的隨機(jī)整數(shù)

# 隨機(jī)整數(shù)數(shù)組
print(np.random.randint(5, size=3))
print(np.random.randint(4, size=(2, 3)))
print(np.random.randint(1, 4, size=(3, 3)))

運(yùn)行結(jié)果如下:

參考:
【轉(zhuǎn)】Python 玩轉(zhuǎn)隨機(jī)數(shù)
隨機(jī)抽樣 (numpy.random)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容