Python+random模塊實現隨機抽樣
python的random庫,提供瞭很多隨機抽樣方法。
1. 設置隨機數種子 seed()
在適當的情形下,為例保證抽樣的結果固定,不因多次運行而改變,可以設置隨機數種子。
如果不設置則是以當前系統時間作為隨機數種子。
設置隨機數種子使用的是random.seed()方法。代碼示例如下。
import random random.seed(100)
在jupyternotebook中,seed的影響范圍隻限於每個代碼格子內。
2. random() 與 randint()
random庫的random()函數,作為該模塊中其他隨機方法的基礎。
可以在區間 [0.0, 1.0) 內隨機生成一個浮點數。
如果想要產生其他范圍內的浮點數,則可以使用random.uniform(a,b)方法,
以產生[a,b]范圍內一個隨機浮點數。
具體示例如下:
random.random()
random庫的randint()方法則可以在給定區間內隨機生一個整數。(左右邊界值都可以取)
random.randint(1,2)
輸出效果如下圖所示:
此外,如果使用random.randrange(a,b,step)方法,則還可以在原有基礎上,限制range的步長,再取整數。
3. sample()方法 無放回抽樣
sample()方法可以從給定序列中隨機抽取n個元素(無放回抽樣。)
該方法語法如下:
random.sample(population,k)
random.seed(13) listA = ["a", "b", "c"] random.sample(listA,2)
4. choice() 與 choices() 有放回抽樣
choice() 與 choices()可以實現從給定的序列中進行有放回地隨機抽樣。
其中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()方法可以實現,對序列的隨機排序,即打亂原有序列。
random.seed(13) listA = ["a", "b", "c"] random.shuffle(listA) listA
6. 猜拳小案例
看似簡單樸實的案例,往往蘊含著許多值得參考和借鑒的細節。
以猜拳小遊戲案例為例,要求是玩傢對電腦,電腦隨機出,玩傢以輸入的方式。
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模塊實現隨機抽樣的文章就介紹到這瞭,更多相關Python random隨機抽樣內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Python 中random 庫的詳細使用
- 淺析Python中的隨機采樣和概率分佈
- Python如何生成隨機數及random隨機數模塊應用
- Python之random庫的常用函數有哪些
- Python中的sys模塊、random模塊和math模塊