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