ValueError:样本大于从图中选择样本的总体

时间:2015-04-20 23:44:39

标签: python random sample

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

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

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

ValueError: Sample larger than population

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

2 个答案:

答案 0 :(得分:1)

我不确定numPosSamples是如何获得它的价值的,但是因为random.sample在没有替换的情况下对进行抽样,所以这里可能发生的是numPosSamples大于图表中的边数。因此,Python会引发您所看到的ValueError

将样本数减少到小于边数,或者使用允许替换的采样方法,例如random.choice的列表推导。< / p>

答案 1 :(得分:0)

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

例如:

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