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/