python - 如何在不更换的情况下进行增量采样?

标签 python algorithm statistics probability sample

Python 有 my_sample = random.sample(range(100), 10) 可以从 [0, 100) 随机抽样而不替换。

假设我已经采样了 n 这样的数字,现在我想再采样一个而不进行替换(不包括任何以前采样的 n),如何做到这一点 super 有效吗?

更新:从“合理有效”变为“ super 有效”(但忽略常数因素)

最佳答案

如果您事先知道您想要多个不重叠的样本,最简单的方法是 random.shuffle()list(range(100)) (Python 3 - 可以跳过 Python 2 中的 list()),然后根据需要剥离切片。

s = list(range(100))
random.shuffle(s)
first_sample = s[-10:]
del s[-10:]
second_sample = s[-10:]
del s[-10:]
# etc

否则@Chronial 的答案相当有效。

关于python - 如何在不更换的情况下进行增量采样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18921302/

相关文章:

python - Django 投票中的错误?

Python-Django-Heroku-导入错误-无法从 'fromshare' 导入名称 'socket'

algorithm - 通过删除具有替代字符的子序列将二进制字符串减少为空字符串

Python:Z 分数参数计算

c# - 从 C# 中的加权列表中选择 x 个随机元素(无需替换)

mysql - ORDER BY RAND() 似乎不那么随机

python - 从 Python 中的 unicode 字符串替换非 ascii 字符

python - Pysftp:操作超时

algorithm - 向图中添加新边并在 O(n) 中找到新的生成树

c++ - 计数排序 我的输入是1,4,3,1 但输出是垃圾值,1,1,3 输入不正确