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

脚本专栏 发布日期:2024/10/22 浏览次数:1

正在浏览:基于Python中random.sample()的替代方案

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()的替代方案就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?