从总体中采样固定数量的唯一对

问题描述 投票:1回答:2

我有一个n元素的样本。我想从m中对n个唯一对进行子采样。在python中有一个简单的现成方法吗?

例如,如果n = [1,2,3,4,5,6,7]m = 3,则这样的样本将是[(1,2,,3,4),(5,6)]

python-3.x sampling
2个回答
0
投票

random模块具有sample功能,它将从集合中选择sample个唯一项目。然后,您可以将它们配对以创建所需的输出:

n

0
投票

取决于您对“随机”的确切含义,答案会有所不同!

对于唯一对的统一采样,假设您列表中的所有元素都是不同的:

import random
import itertools

data = [1,2,3,4,5,6,7,8,9,10]
m = 3

def pairwise(iterable):
    # from the itertools cookbook: https://docs.python.org/3/library/itertools.html#itertools-recipes
    a, b = itertools.tee(iterable)
    next(b, None)
    return zip(a, b)

chosen = random.sample(data, m * 2)
result = pairwise(chosen)
© www.soinside.com 2019 - 2024. All rights reserved.