random.choices()
samples = random.choices(arr, weight, k)
- random.choices() 允许重复选择相同元素。
- 基于有放回抽样(with replacement)的方法实现的。
- 接受3个参数,weight=[10,1,1]表示k个数出现的权重比例,也就是arr中每个元素被选中的权重
random.sample()
samples = random.sample(arr, k)
- 若抽样数量k超过了该数组arr的长度,random.sample() 函数抛出 ValueError 异常
- random.sample() 从序列中随机抽取的唯一元素,不允许重复选择相同元素。
- 基于无放回抽样(without replacement)的方法实现的。
性能对比
结论:从速度上看,当抽样数量小的时候,random.sample方法比numpy.random.choice方法快很多;当抽样数量很大的时候,random.sample方法就不如numpy.random.choice方法。
原文链接:https://www.jb51.net/python/288423p36.htm