random.choice()
random.choice() 从样本中 等概率 的采取一个样本
random.choices()
random.choices(population, weights=None, cum_weights=None, k=2) 从样本中有放回(也就是可被重复采集,一个序列可能包含重复项)的采集 指定个数 的序列,且被采集的每一项可设置权重 参数说明: population: 样本 weights:每个样本被赋予的权重(又称相对权重),决定每个样本被采的概率,如[10, 0, 30, 60, 0] cum_weights:累积权重,相对权重[10, 0, 30, 60, 0]相当于累积权重[10, 10, 40, 100, 100] k: 采样元素个数
random.sample()
random.sample(population, k) 从样本中无放回的采集 指定个数 的序列 population: 样本 k: 采样元素个数
numpy.random.choice()
numpy.random.choice(a, size=None, replace=True, p=None) a: 样本 size: 采样元素个数,None为采集一个 replace=True,则为有放回采样(一个值可以被采多次),否则是无放回的(一个值只能被采一次) p:表示a中每一项被采集的概率,None则为等概率
import randomfrom collections import Counterimport numpy# 构造一批数据test_data = []for i in range(500):test_data.append(f"key_{i}")print(test_data)count_num = {}for j in range(1000):# random.sample 无放回随机取样# get_data = random.sample(test_data, 1)[0]# random.choices 等概率随机取样# get_data = random.choice(test_data)# 无放回等概率取样# get_data = random.choices(test_data, weights=None, cum_weights=None, k=1)[0]#get_data = numpy.random.choice(test_data, size=None, replace=False, p=None)# 统计被取样次数count_num[get_data] = count_num.get(get_data, 0) + 1print("#" * 100)print(count_num)print("#" * 100)most_key = Counter(count_num).most_common()[0]print(most_key)
