问答详情

python中的shuffle怎么用?

453次观看
标签: python shuffle
老师回答

在计算机中,机器学习训练是以每个batch为训练单位,并反向传播一次。将一个batch看作一次学习过程,怎么才能学的好呢,当然是学习对的东西,也就是样本要尽可能接近真实的概率分布(模型学习的本质就是去拟合真实的概率分布)。随机打乱后的一段样本比排序后的更加接近真实分布,排序后多了一层相关性,一定程度上表现出不同的概率分布,因此要打乱数据。那在python中有没有打乱顺序,又不影响内容的办法呢?答案当然是有的,就是我们的shuffle()函数。

一、shuffle()函数

是打乱序列里面的元素,并随机排列的。

作用是混排序列中的元素,序列中元素顺序改变,但其内容不变。

二、使用说明

import random
random.shuffle (alist )

注意:alist可以使是一个列表,也可以是个序列。shuffle()是不能直接访问的,需要导入random模块。

三、shuffle() 方法

1、将单列表的所有元素随机排列

>>>import random

>>>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的参数洗牌打乱一下,发现结果是二维列表行内的顺序不变,列的顺序发生了变化,并且a、b、c三个二维列表的变化是一致的。

from sklearn.utils import shuffle
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()函数既可以打乱列表,也可以打乱序列,既可以打乱单列表,也可以打乱多列表。关键是它不影响内容,便于测试使用,快学起来吧~

免费直播

    精选课程
    相关推荐
    python中append()和extend()有什么区别?
    刘老师 Python编程

    python列表中,append()和extend()都可以在在原有列表上增加对象,但是使用起来有很大区别。append()用于在列表末尾添加新的对象,任意对象都是可以的,列表只占一个索引位,会修改原来的列表。extend()向列表尾部追加一个列表,对象必须是一个可以迭代的序列,将列表中的每个元素都追加进来,会在已存在的列表中添加新的列表内容。详情请看本文。

    一、append()

    用于在列表末尾添加新的对象,列表只占一个索引位,在原有列表上增加。

    1、语法

    list.append(obj)

    2、参数obj 

    向列表中添加一个对象obj ,即添加到列表末尾的对象;

    任意对象都是可以的;

    直接将整个obj放入列表末尾。

    3、返回值

    无返回值,但是会修改原来的列表。

    4、使用实例

     lia.append(lib)
     lia>>   ['aa', 1, 'bb', None, ['cc', 2, {'dd': 3}]]

    二、extend() 

    向列表尾部追加一个列表,将列表中的每个元素都追加进来,在原有列表上增加。

    1、语法

    list.extend(seq)

    2、参数seq 

    把一个序列seq的内容添加到列表中,即元素列表;

    对象必须是一个可以迭代的序列;

    将seq打散后依次放入列表末尾。

    3、返回值

    无返回值,但会在已存在的列表中添加新的列表内容。

    4、使用实例

    lia.extend(lib)      不能用变量接收
    
    lia>>  ['aa', 1, 'bb', None, 'cc', 2, {'dd': 3}]

    以上就是python中append()和extend()的对比分析,希望能对你有所帮助哦~

    注册电脑版

    版权所有 2003-2020 广州环球青藤科技发展有限公司