值错误:样本大于总体从图中选择样本

2024-06-28 19:36:10 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

ValueError: Sample larger than population

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


Tags: sample函数列表错误rangerandomgraph样本
2条回答

我不确定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))

相关问题 更多 >