Python不重复批量随机抽样 random.sample() 和 numpy.random.choice() 的优缺点

本文对比了Python中random.sample()和numpy.random.choice()两种随机抽样方法。random.sample()可从任意维列表不重复抽样,适用范围广;numpy.random.choice()抽样对象需为整数或一维数组。抽样数量少,random.sample()更快;抽样数量大,numpy.random.choice()更优。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对比

python中random.sample()方法可以随机地从指定列表中提取出N个不同的元素,列表的维数没有限制

文章指出:在实践中发现,当N的值比较大的时候,该方法执行速度很慢。可以用numpy random模块中的choice方法来提升随机提取的效率。

有问题,从该文章看不出来random.sample方法比choice方法慢多少,我自己仿真倒是发现random.sample方法比choice方法快的多,后面会举例说明

numpy.random.choice() 对抽样对象有要求,必须是整数或者一维数组(列表),不能对超过一维的数据进行抽样,这是其缺点。

random.sample() 和 numpy.random.choice() 的优点都是可以指定抽样的个数,一次性从列表中不重复地抽样出指定个数的元素,其中 random.sample()默认就是不重复抽样(不放回的抽样),而numpy.random.choice()默认是可以重复抽样,要想不重复地抽样,需要设置replace参数为False,用法如下:
在这里插入图片描述

补充

前面说random.samp

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值