2024-06-28 19:36:10 发布
网友
我试图从一张图中随机选择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。
numPosSamples
random.sample
ValueError
要么将样本数减少到小于边数,要么使用允许使用替换的采样的采样方法,例如使用random.choice进行列表理解。
random.choice
您可以添加一些逻辑来检测列表是否短于所需的样本数。
例如:
a = list(range(10)) num_samples = 20 sample(a, num_samples if len(a) > num_samples else len(a))
我不确定
numPosSamples
是如何得到它的值的,但是由于random.sample
在没有替换的情况下进行采样,这里可能发生的情况是numPosSamples
大于图中的边数。结果,Python提升了您看到的ValueError
。要么将样本数减少到小于边数,要么使用允许使用替换的采样的采样方法,例如使用
random.choice
进行列表理解。您可以添加一些逻辑来检测列表是否短于所需的样本数。
例如:
相关问题 更多 >
编程相关推荐