需求说明
某次需要使用random来进行抽样,发现有多个api可用,但只用过choice一种,好奇之下对其余几个做了简单研究,记录在此方便查阅
具体代码
# 三个api如下所示
az = [0,1,2,3,4,5,6,7,8,9]
random.choice(a) # 从列表中随机抽一个数
random.choices(sequence, weights=None, cum_weights=None, k=1)
# 1. sequence是可以是列表,元组或字符串。 从该序列中抽样
# 2.权重是用于衡量每个值的可能性的可选参数。
# 3. cum_weights是一个可选参数,用于权衡每个值的可能性,但是在这种情况下,可能性被累加。
# 4. k是一个可选参数,用于定义返回列表的长度。
random.choices(az, weights = [10, 1, 1, 2,3,4,1,3,2,5], k = 5) # 抽一个列表出来,有5个元素,但是这是有放回抽样,即抽出的数据可能会重复
random.sample(az, k=2) # 无放回抽取一个列表出来,有2个元素,但是抽取出的数据不会重复