一、使用shuffle()函數打亂列表
shuffle()函數是Python自帶的隨機打亂列表的函數,可以直接引入random包。
import random
lst = [1, 2, 3, 4, 5]
random.shuffle(lst)
print(lst)
輸出:
[5, 1, 2, 3, 4]
上述代碼中,lst為要打亂的列表,random.shuffle()函數將lst內的元素隨機打亂,之後輸出打亂後的列表lst。
二、使用sample()函數隨機取樣列表
在Python中,除了shuffle()函數,還有一個sample()函數,可以用來隨機取樣。
import random
lst = [1, 2, 3, 4, 5]
new_lst = random.sample(lst, len(lst))
print(new_lst)
輸出:
[1, 5, 3, 2, 4]
上述代碼中,random.sample()函數接受兩個參數,第一個參數是要取樣的列表,第二個參數是要取樣的數量,這裡取樣數量為列表長度,即全部取樣,之後輸出取樣後的列表new_lst。
三、使用numpy包中的permutation()函數
numpy是科學計算和數據分析中最常用的包之一,它提供了豐富的數學函數和數組處理工具。在numpy中,除了shuffle()函數和sample()函數外,提供了一個用於隨機排列的permutation()函數。
import numpy as np
lst = [1, 2, 3, 4, 5]
new_lst = np.random.permutation(lst)
print(new_lst)
輸出:
[5, 1, 2, 4, 3]
上述代碼中,np.random.permutation()函數接受一個列表作為參數,返回一個隨機排列的新列表new_lst。
四、使用random.sample()函數進行加權隨機
使用random.sample()函數還可以進行加權隨機取樣。舉例來說,如果我們有一個數字列表lst和一個對應的權重列表weights,我們可以使用random.sample()函數對數字進行加權隨機取樣,每個數字被選擇的概率與其對應的權重成比例。
import random
lst = [1, 2, 3, 4, 5]
weights = [0.1, 0.1, 0.2, 0.3, 0.3]
new_lst = random.choices(lst, weights, k=len(lst))
print(new_lst)
輸出:
[4, 5, 3, 3, 5]
上述代碼中,random.choices()函數接受三個參數,第一個參數是要取樣的列表,第二個參數是列表中每個元素對應的權重,第三個參數是要取樣的數量,這裡取樣數量為列表長度,即全部取樣,之後輸出取樣後的列表new_lst。
五、小結
本文介紹了Python中隨機打亂列表的方法,包括使用shuffle()函數、sample()函數和numpy包中的permutation()函數,以及加權隨機取樣的方法。在實際編程中,我們可以根據具體需要選擇不同的方法。
原創文章,作者:AAIPA,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/330702.html