代码编织梦想

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)函数

  1. population:集合
  2. weights:相对权重
  3. cum_weights:累加权重
  4. k:选取次数

作用:从集合中随机选取k次数据,返回一个列表,可以设置权重
**注意:**每次选取都不会影响原序列,每一次选取都是基于原序列。从population中进行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了。

3. random sample()

从population中无放回取样,一次取k个,返回一个k长的列表

random.sample
import random

_list = [n for n in range(1000)]
x = random.sample(_list, k=100)
print(len(set(x)) == len(x))
#输出结果为:True

4. 总结

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

  2. choices(population, weights=None, *, cum_weights=None, k=1):从population中进行K次有放回随机选取,每次选取一个元素(注意会出现同一个元素多次被选中的情况),weights是相对权重值,population中有几个元素就要有相对应的weights值,cum_weights是累加权重值,例如,相对权重〔10, 5, 30,5〕相当于累积权重〔10, 15, 45,50〕。在内部,在进行选择之前,相对权重被转换为累积权重,因此提供累积权重节省了工作。返回一个列表。

  3. sample(population, k):从population中无放回取样,一次取k个,返回一个k长的列表。可以像这样使用sample(range(10000000), k=60)

5. 相关链接

Python: random模块的随即取样函数:choice(),choices(),sample()
Python学习:random模块下的choices()函数详解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/flyingluohaipeng/article/details/127971048

python中np.random.choice基本用法_菜小白—nlp的博客-爱代码爱编程_python中choice的用法

作用: 用于产生随机数 函数定义: np.random.choice(a, size=None, replace=True, p=None) 参数: a:一维数组或者int型变量,如果是数组,就按照里面的范围来

python,numpy中np.random.choice()的用法详解及其参考代码-爱代码爱编程

处理数据时经常需要从数组中随机抽取元素,这时候就需要用到np.random.choice()。然而choice用法的官方解释并不详细,尤其是对replace参数的解释,例子也不是很全面。因此经过反复实验,我较为详细的总结出了

numpy.random.choice函数详解-爱代码爱编程

函数参数: numpy.random.choice(a, size=None, replace=True, p=None) 参数解释a一维数组或整数。如果是个数组,则新的样本元素来自这个数组;如果是整数,随机样本来自np.range(a)size单数或元组。如果是单数,输出该数量元素的一维数组;如果是元组(m, n, k),则生成m×n×k个样本,排列

python中random.sample函数的使用方法-python中的随机函数random的用法示例-爱代码爱编程

一、random模块简介 Python标准库中的random函数,可以生成随机浮点数、整数、字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等。 二、random模块重要函数 1 )、random() 返回0<=n<1之间的随机实数n; 2 )、choice(seq) 从序列seq中返回随机的元素; import random a

python中choice方法_如何在python中模拟random.choice?-爱代码爱编程

我希望每次在我的unittest中选择返回相同的值1000.以下代码不起作用. import unittest from random import choice from mock import mock def a(): return choice([1, 2, 3]) class mockobj(object): @classmethod def c

python random choice如何生成随机数_python – random.choice()在同一秒返回相同的值,如何避免它?...-爱代码爱编程

您可以通过使用random.SystemRandom()来改进问题,如下所示: import random sys_random = random.SystemRandom() def getRandomID(): token = '' letters = "abcdefghiklmnopqrstuvwwxyzABCDEFGHIJKLMNOPQRSTUVW

python np random choice_Python Numpy random.choice() 数据分布-爱代码爱编程

1、什么是数据分布(Data Distribution)? 数据分发是所有可能值以及每个值出现频率的列表。 当使用统计和数据科学时,此类列表非常重要。 random模块提供了返回随机生成的数据分布的方法。 2、随机分布 随机分布是一组随机数,遵循一定的概率密度函数。 概率密度函数:描述连续概率的函数。 即数组中所有值的概率。 我们可以使用

python中random.choice的用法_使用Python中的random.choice()函数打印随机元素-爱代码爱编程

Python- random.choice() 功能 random()是Python中“随机”模块的内置函数,用于从容器中返回随机元素,例如列表,字符串,元组等对象。 在给定程序中,我们使用字符串和列表,并从列表中生成随机数,从字符串列表中生成随机字符串,并从字符串中生成随机字符。要使用'random'模块,我们需要导入'random'。 导入声

Python中random模块常用函数/方法(4)——random.choice(),random.choices()-爱代码爱编程

1、random.choice():从非空序列seq中随机选取一个元素 语法:random.choice(seq) 注意:seq 可以是一个列表,元组或字符串,如果seq为空则弹出 IndexError异常。 #非空序列为列表 print("非空序列为列表:") L = [1,2,3,4,5] print(random.choice(L)) print

np.random.choice和random.choice的用法-爱代码爱编程

numpy.random.choice(a, size=None, replace=True, p=None) 用法:需要引用numpy库 import numpy as np numpy.random.choice(a, size=None, replace=True, p=None) 用途:从a(一维数据)中随机抽取数字,返回指

python小记(四):python中“numpy.random.choice”的使用方法-爱代码爱编程

python中“numpy.random.choice”的使用方法 前言一、“numpy.random.choice” 前言 项目上的需要,需要有概率的随机选择列表中的内容。 一、“numpy.random.choice” 一开始以为“random.choice”和“numpy.random.choice”是一个函数,后来发现两个函数截然

Python中的随机收取方法random.choice()方法-爱代码爱编程

选择题 以下程序的输出结果可能是: list = [12,'a',46,'xyz'] print(random.choice(list[3])) A. 12 B. a C. 46 D. z 问题解析 1.random.choice()方法用于返回一个列表、元组或字符串中的随机项。 2.在使用random.choice()方法前,

numpy抽样函数 np.random.choice用法详解_低调流年的微凉的博客-爱代码爱编程

顾名思义,抽样函数,定义如下: def choice(a, size=None, replace=True, p=None): 参数说明: a :待抽样的样本(一维数组或整数) size: 输出大小,默认返回单个元素 replace : 抽样后的元素是否可重复,默认是 p: 每个样本点被抽样的概率,默认均匀抽样 举例如下: 从[1,2,3,4,

python中的random.choice()和random.shuffle()函数_初于青丝mc终于白发的博客-爱代码爱编程

两个都是random包中的函数,使用前要导入此包。 两个函数用来接受参数列表的函数 random.choice()从列表中返回一个随机选择的表项import random pets = ['dog','cat','moose'] random.choice(pets) #随机返回'cat' random.choice(pets) #随机返回