Python学习:random模块下的choices()函数详解 您所在的位置:网站首页 random的音标 Python学习:random模块下的choices()函数详解

Python学习:random模块下的choices()函数详解

2023-09-08 06:13| 来源: 网络整理| 查看: 265

1.random.choice(seq)函数

从非空序列中随机选取一个数据并返回,该序列可以是list、tuple、str、set。

举例:

import random print(random.choice('choice')) 结果:choice其中任意一个字母,可能是c也可能是h... 2.random.choices(population,weights=None,*,cum_weights=None,k=1)函数 population:集群。weights:相对权重。cum_weights:累加权重。k:选取次数。

作用:从集群中随机选取k次数据,返回一个列表,可以设置权重。

注意:每次选取都不会影响原序列,每一次选取都是基于原序列。

举例:

import random a = [1,2,3,4,5] print(random.choices(a,k=6)) 解析:重复6次从列表a中的各个成员中选取一个数输出,各个成员出现概率基本持平。 结果:[5, 4, 5, 4, 1, 3](随机生成的) print(random.choices(a,weights=[0,0,1,0,0],k=6)) 解析:重复6次从列表a中提取3,最终得到[3, 3, 3, 3, 3, 3] 结果:[3, 3, 3, 3, 3, 3](固定结果) print(random.choices(a,weights=[1,1,1,1,1],k=6)) 解析:重复6次从列表a中的各个成员中选取一个数输出,各个成员出现概率基本持平。 结果:[5, 4, 3, 5, 4, 3](随机生成的) print(random.choices(a,cum_weights=[1,1,1,1,1],k=6)) 结果:[1, 1, 1, 1, 1, 1](固定结果)

可以自己多输出几次看看规律。

结论:

参数weights设置相对权重,它的值是一个列表,设置之后,每一个成员被抽取到的概率就被确定了。 比如weights=[1,2,3,4,5],那么第一个成员的概率就是P=1/(1+2+3+4+5)=1/15。 cum_weights设置累加权重,Python会自动把相对权重转换为累加权重,即如果你直接给出累加权重, 那么就不需要 给出相对权重,且Python省略了一步执行。 比如weights=[1,2,3,4],那么cum_weights=[1,3,6,10] 这也就不难理解为什么cum_weights=[1,1,1,1,1]输出全是第一个成员1了。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有