在計算機中,機器學習訓練是以每個batch為訓練單位,并反向傳播一次。將一個batch看作一次學習過程,怎么才能學的好呢,當然是學習對的東西,也就是樣本要盡可能接近真實的概率分布(模型學習的本質(zhì)就是去擬合真實的概率分布)。隨機打亂后的一段樣本比排序后的更加接近真實分布,排序后多了一層相關性,一定程度上表現(xiàn)出不同的概率分布,因此要打亂數(shù)據(jù)。那在python中有沒有打亂順序,又不影響內(nèi)容的辦法呢?答案當然是有的,就是我們的shuffle()函數(shù)。
一、shuffle()函數(shù)
是打亂序列里面的元素,并隨機排列的。
作用是混排序列中的元素,序列中元素順序改變,但其內(nèi)容不變。
二、使用說明
importrandom
random.shuffle(alist)
注意:alist可以使是一個列表,也可以是個序列。shuffle()是不能直接訪問的,需要導入random模塊。
三、shuffle()方法
1、將單列表的所有元素隨機排列
>>>importrandom
>>>list=[0,1,2,3,4,5,6,7,8,9]
>>>random.shuffle(list)
>>>list
[6,2,4,7,9,3,1,5,8,0]
2、將單列表的所有元素隨機排列
a、b、c都是二維列表,我們將a、b、c作為shuffle的參數(shù)洗牌打亂一下,發(fā)現(xiàn)結(jié)果是二維列表行內(nèi)的順序不變,列的順序發(fā)生了變化,并且a、b、c三個二維列表的變化是一致的。
fromsklearn.utilsimportshuffle
a=[[1,2,3],
[4,5,6],
[7,8,9]]
b=[[10,11,12],
[13,14,15],
[16,17,18]]
c=[[19,20,21],
[22,23,24],
[25,26,27]]
a,b,c=shuffle(a,b,c)
print(a)
print(b)
print(c)
輸出:
[[7,8,9],[4,5,6],[1,2,3]]
[[16,17,18],[13,14,15],[10,11,12]]
[[25,26,27],[22,23,24],[19,20,21]]
shuffle()函數(shù)既可以打亂列表,也可以打亂序列,既可以打亂單列表,也可以打亂多列表。關鍵是它不影響內(nèi)容,便于測試使用。
以上內(nèi)容為大家介紹了python中的shuffle怎么用?,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構(gòu):千鋒教育。