Python+random模塊實現(xiàn)隨機抽樣
python的random庫,提供了很多隨機抽樣方法。

1. 設置隨機數(shù)種子 seed()
在適當?shù)那樾蜗?,為例保證抽樣的結果固定,不因多次運行而改變,可以設置隨機數(shù)種子。
如果不設置則是以當前系統(tǒng)時間作為隨機數(shù)種子。
設置隨機數(shù)種子使用的是random.seed()方法。代碼示例如下。
import random random.seed(100)
在jupyternotebook中,seed的影響范圍只限于每個代碼格子內(nèi)。
2. random() 與 randint()
random庫的random()函數(shù),作為該模塊中其他隨機方法的基礎。
可以在區(qū)間 [0.0, 1.0) 內(nèi)隨機生成一個浮點數(shù)。
如果想要產(chǎn)生其他范圍內(nèi)的浮點數(shù),則可以使用random.uniform(a,b)方法,
以產(chǎn)生[a,b]范圍內(nèi)一個隨機浮點數(shù)。
具體示例如下:
random.random()
random庫的randint()方法則可以在給定區(qū)間內(nèi)隨機生一個整數(shù)。(左右邊界值都可以?。?/p>
random.randint(1,2)
輸出效果如下圖所示:

此外,如果使用random.randrange(a,b,step)方法,則還可以在原有基礎上,限制range的步長,再取整數(shù)。
3. sample()方法 無放回抽樣
sample()方法可以從給定序列中隨機抽取n個元素(無放回抽樣。)
該方法語法如下:
random.sample(population,k)
random.seed(13) listA = ["a", "b", "c"] random.sample(listA,2)

4. choice() 與 choices() 有放回抽樣
choice() 與 choices()可以實現(xiàn)從給定的序列中進行有放回地隨機抽樣。
其中chioce()只抽一次,而choices() 表示抽取多次。
random.choices()方法的語法如下:
random.choices(population,weights=None,*,cum_weights=None,k=1)
import random listA = ["a", "b", "c"] print(random.choice(listA)) print(random.choices(listA, k=2))

5. shuffle()方法
shuffle()方法可以實現(xiàn),對序列的隨機排序,即打亂原有序列。
random.seed(13) listA = ["a", "b", "c"] random.shuffle(listA) listA

6. 猜拳小案例
看似簡單樸實的案例,往往蘊含著許多值得參考和借鑒的細節(jié)。
以猜拳小游戲案例為例,要求是玩家對電腦,電腦隨機出,玩家以輸入的方式。
import random
while 1:
s = int(random.randint(1, 3))
if s == 1:
ind = "石頭"
elif s == 2:
ind = "剪子"
elif s == 3:
ind = "布"
m = input('【猜拳游戲】輸入 石頭、剪子、布猜拳,輸入"end"結束游戲:\n')
blist = ["石頭", "剪子", "布"]
if (m not in blist) and (m != 'end'):
print ("輸入錯誤,請重新輸入!")
elif (m not in blist) and (m == 'end'):
print ("\n游戲退出中...")
print("已退出")
break
elif m == ind :
print ("電腦出了: " + ind + ",平局!")
elif (m == '石頭' and ind =='剪子') or (m == '剪子' and ind =='布') or (m == '布' and ind =='石頭'):
print ("電腦出了: " + ind +",你贏了!")
elif (m == '石頭' and ind =='布') or (m == '剪子' and ind =='石頭') or (m == '布' and ind =='剪子'):
print ("電腦出了: " + ind +",你輸了!")

到此這篇關于Python+random模塊實現(xiàn)隨機抽樣的文章就介紹到這了,更多相關Python random隨機抽樣內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
matplotlib部件之矩形選區(qū)(RectangleSelector)的實現(xiàn)
這篇文章主要介紹了matplotlib部件之矩形選區(qū)(RectangleSelector)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-02-02
Python實現(xiàn)的遞歸神經(jīng)網(wǎng)絡簡單示例
這篇文章主要介紹了Python實現(xiàn)的遞歸神經(jīng)網(wǎng)絡,是一篇摘錄自github代碼片段的文章,涉及Python遞歸與數(shù)學運算相關操作技巧,需要的朋友可以參考下2017-08-08
python3.6.4安裝opencv3.4.2的實現(xiàn)
這篇文章主要介紹了python3.6.4安裝opencv3.4.2的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10
Python+Socket實現(xiàn)基于UDP協(xié)議的局域網(wǎng)廣播功能示例
這篇文章主要介紹了Python+Socket實現(xiàn)基于UDP協(xié)議的局域網(wǎng)廣播功能,結合實例形式分析了Python+socket實現(xiàn)UDP協(xié)議廣播的客戶端與服務器端功能相關操作技巧,需要的朋友可以參考下2017-08-08

