ValueError: Sample larger than population selecting samples from graph

ValueError: Sample larger than population selecting samples from graph

我正在尝试从图表中随机 select n 个样本。为此,我使用 random.sample 函数创建了一个名为 X 的列表,如下所示:

X= random.sample(range(graph.ecount()), numPosSamples)

问题是当 numPosSamples 等于 graph.ecount() 时,我收到以下错误:

ValueError: Sample larger than population

任何帮助将不胜感激。谢谢

我不确定 numPosSamples 是如何获得它的价值的,但是因为 random.sample 进行采样 而没有 替换,这里可能发生的是numPosSamples 大于图形中的边数。结果,Python 提高了您看到的 ValueError

要么将样本数量减少到少于边缘数量,要么使用允许使用 替换进行采样的采样方法,例如使用 random.choice.

您可以添加一些逻辑来检测您的列表是否少于您想要的样本数。

例如:

a = list(range(10))
num_samples = 20
sample(a, num_samples if len(a) > num_samples else len(a))