python以相同规律打乱多组数据的方法

在深度学习的数据训练过程中,虽然tensorflow和pytorch都会自带打乱数据进行训练的方法,但是当我们自己生成数据,或者某些情况下依然要自己手动打乱顺序.
这里介绍如何以相同规律打乱X,Y两组数据,多组数据相同道李.

第一种:(X,Y是list的格式,不是array)
产生相同的种子(seed)打乱顺序:

import random
seed =50
x_batch, y_batch,start_num = train_load_order_sharp_5_9(image_list, num, start_num,length)
#加载我所有的数据,这里想x_batch,Y_batch是list的格式,要注意
random.seed(seed)
random.shuffle(x_batch)
random.seed(seed)#一定得重复在写一遍,和上面的seed要相同,不然y_batch和x_batch打乱顺序会不一样
random.shuffle(y_batch)

第二种,zip的方式,更加高效:(同第一种,X,Y是list的格式,不是array)

from random import shuffle

shuffle_data=True
if shuffle_data:
    c = list(zip(x_batch,y_batch))
    shuffle(c)
    x_batch,y_batch = zip(*c)

举个例子:

>>> a=[1,2,3,4]
>>> b=[11,22,33,44]
>>> c=list(zip(a,b))
>>> shuffle(c)
>>> a,b = zip(*c)
>>> a
(2, 4, 3, 1)
>>> b
(22, 44, 33, 11)
#这里就让a,b以相同的规律被打乱

猜你喜欢

转载自blog.csdn.net/CV_YOU/article/details/82178844