• 技术文章 >常见问题 >Python常见问题

    python中的shuffle怎么用?

    宋雪维宋雪维2020-12-03 17:44:17原创9619

    在计算机中,机器学习训练是以每个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()函数既可以打乱列表,也可以打乱序列,既可以打乱单列表,也可以打乱多列表。关键是它不影响内容,便于测试使用,快学起来吧~

    专题推荐:pythonshuffle
    上一篇:return和yield有什么区别吗? 下一篇:在python中如何打乱数据?

    相关文章推荐

    • 如何用python3代码展现reduce传递参数?• python中return是什么意思?• python中的yield详解

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网