python的random模組,學習筆記
阿新 • • 發佈:2021-01-10
內容概要
python的random模組採用梅森旋轉演算法生成的(偽)隨機序列中元素,主要用於生成隨機數。在劃分資料集時常用,這篇筆記記錄以下函式的用法:
函式 | 功能 |
---|---|
seed | 隨機隨機生成器種子 |
shuffle | 將序列的所有元素隨機排序 |
sample | 隨機取樣列表中的元素 |
參考連線:https://www.cnblogs.com/randysun/p/11202474.html
random.seed()
seed()方法可以改變隨機數生成器的種子,在呼叫其他隨機模組函式之前呼叫此函式,可以設定隨機數生成器。
# -*- coding: utf-8 -*-
import random
random. seed(0)
a = random.random()
random.seed()
b = random.random()
random.seed(0)
c = random.random()
在使用random中的其他函式之前使用seed(),括號中的引數可以任意選取,引數固定之後,random模組產生的隨機數就會固定。採用這種方式,在劃分測試集和驗證集時可以保證結果可以復現。
注意seed(x)的作用範圍到使用它之後的第一條random庫方法就結束了,因此每次想使用同一個隨機生成器都要寫一次seed(x)
random.shuffle()
shuffle() 方法將序列的所有元素隨機排序。
# -*- coding: utf-8 -*-
import random
random.seed(10)
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random.shuffle(a)
print(a)
random.seed(10)
b = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random.shuffle(b)
print(b)
同樣,可以使用seed(), 固定隨機打亂陣列的方式。
random.sample()
sample()方法從列表中隨機指定個數的元素,這是劃分訓練集個驗證集最常用的方法,通常也搭配seed()使用
# -*- coding: utf-8 -*-
import random
a = range(20)
print(a)
rate = 0.5
random.seed(10)
b = random.sample(a, k=int(rate * len(a)))
print(b)
random.seed(10)
c = random.sample(a, k=int(rate * len(a)))
print(c)
以上程式碼展示了從列表a中取樣百分之五十的元素。
有關random庫的其他方法我之後會更新在這篇帖子裡。