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 random
from collections import Counter
import 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) + 1
print("#" * 100)
print(count_num)
print("#" * 100)
most_key = Counter(count_num).most_common()[0]
print(most_key)