基于Python中random.sample()的替代方案


Posted in Python onMay 23, 2020

python中random.sample()方法可以随机地从指定列表中提取出N个不同的元素,但在实践中发现,当N的值比较大的时候,该方法执行速度很慢,如:

numpy random模块中的choice方法可以有效提升随机提取的效率:

基于Python中random.sample()的替代方案

需要注意的是,需要置replace为False,即抽取的元素不能重复,默认为True。

基于Python中random.sample()的替代方案

补充知识:Python: random模块的随即取样函数:choice(),choices(),sample()

choice(seq): 从seq序列中(可以是列表,元组,字符串)随机取一个元素返回

choices(population, weights=None, *, cum_weights=None, k=1):

从population中进行K次随机选取,每次选取一个元素(注意会出现同一个元素多次被选中的情况),weights是相对权重值,population中有几个元素就要有相对应的weights值,cum_weights是累加权重值,例如,相对权重〔10, 5, 30,5〕相当于累积权重〔10, 15, 45,50〕。

在内部,在进行选择之前,相对权重被转换为累积权重,因此提供累积权重节省了工作。返回一个列表。

sample(population, k)从population中取样,一次取k个,返回一个k长的列表。

可以像这样使用sample(range(10000000), k=60)

以上这篇基于Python中random.sample()的替代方案就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python网络爬虫实例讲解
Apr 28 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
Jan 05 Python
Django中间件工作流程及写法实例代码
Feb 06 Python
pandas进行数据的交集与并集方式的数据合并方法
Jun 27 Python
Python实现识别图片内容的方法分析
Jul 11 Python
详解PyCharm配置Anaconda的艰难心路历程
Aug 13 Python
python利用ffmpeg进行录制屏幕的方法
Jan 10 Python
Tornado实现多进程/多线程的HTTP服务详解
Jul 25 Python
Python统计文本词汇出现次数的实例代码
Feb 27 Python
PyTorch如何搭建一个简单的网络
Aug 24 Python
python opencv肤色检测的实现示例
Dec 21 Python
Python djanjo之csrf防跨站攻击实验过程
May 14 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
May 23 #Python
keras中模型训练class_weight,sample_weight区别说明
May 23 #Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
May 23 #Python
Keras实现将两个模型连接到一起
May 23 #Python
keras 获取某层输出 获取复用层的多次输出实例
May 23 #Python
给keras层命名,并提取中间层输出值,保存到文档的实例
May 23 #Python
keras小技巧——获取某一个网络层的输出方式
May 23 #Python
You might like
PHP4之COOKIE支持详解
2006/10/09 PHP
PHP生成条形码大揭秘
2015/09/24 PHP
jQuery中append()方法用法实例
2015/01/08 Javascript
JavaScript+CSS实现的可折叠二级菜单实例
2016/02/29 Javascript
jQuery实现字符串全部替换的方法
2016/12/12 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
2017/05/26 Javascript
浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题
2017/09/02 Javascript
使用javascript做在线算法编程
2018/05/25 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
vue.js实现会动的简历(包含底部导航功能,编辑功能)
2019/04/08 Javascript
JavaScript中ES6规范中let和const的用法和区别
2020/08/06 Javascript
Vue实现省市区三级联动
2020/12/27 Vue.js
Python使用gensim计算文档相似性
2016/04/10 Python
python 多线程中子线程和主线程相互通信方法
2018/11/09 Python
Python 占位符的使用方法详解
2019/07/10 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
2020/04/24 Python
python中关于数据类型的学习笔记
2020/07/19 Python
详解Python高阶函数
2020/08/15 Python
Python类绑定方法及非绑定方法实例解析
2020/10/09 Python
药物学专业学生的自我评价
2013/10/27 职场文书
生物技术专业毕业生求职信范文
2013/12/14 职场文书
初一地理教学反思
2014/01/16 职场文书
班级道德讲堂实施方案
2014/02/24 职场文书
财产公证书样本
2014/04/04 职场文书
总经理岗位职责说明书
2014/07/30 职场文书
组织生活会表态发言材料
2014/10/17 职场文书
迁户口计划生育证明
2014/10/19 职场文书
2014年政府采购工作总结
2014/12/09 职场文书
实名检举信范文
2015/03/02 职场文书
2015年秋季新学期寄语
2015/03/25 职场文书
《大禹治水》教学反思
2016/02/22 职场文书
Redis Cluster 集群搭建你会吗
2021/08/04 Redis
SpringBoot实现quartz定时任务可视化管理功能
2021/08/30 Java/Android
B站评分公认最好看的动漫,你的名字评分9.9,第六备受喜欢
2022/03/18 日漫
vue elementUI表格控制对应列
2022/04/13 Vue.js
Python实现仓库管理系统
2022/05/30 Python