1. 程式人生 > 其它 >python的random模組,學習筆記

python的random模組,學習筆記

技術標籤:python列表

內容概要

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庫的其他方法我之後會更新在這篇帖子裡。