【问题标题】:Sample larger than population Python样本大于人口 Python
【发布时间】:2014-04-04 08:36:57
【问题描述】:

我需要一个包含基数为 nlittle 的整数的列表,这些整数在 (valuemin,value) 中必须是随机的,但我得到的错误样本大于运行以下代码的总体

    nlittle=random.randrange(5,15)
    value=random.randint(1,100)
    valuemin=int(valore*0.8)
    minmoduniform=5*valoremin
    maxmoduniform=20*valore
    puniform=random.sample(xrange(valuemin,value), nlittle)
    rouniform=random.sample(xrange(valuemin,value), nlittle)

如果 nlittle(在我的代码中)大于 xrange 的差异,我该如何解决这个问题并打印一个列表? 类型

【问题讨论】:

  • “打印列表”包含什么?您的问题是您试图从长度为 5 的列表中获取例如大小为 10 的样本,这是不可能的。你最初的目标是什么?
  • 我需要一个包含基数为 nlittle 的整数的列表,这些整数在 (valuemin,value) @Jasper 中必须是随机的
  • 那么你应该改写你的问题。

标签: python random


【解决方案1】:
rands = [random.randint(valuemin, value) for x in xrange(nlittle)]

这会在valuemin 和value 之间选择nlittle 整数。

【讨论】:

    【解决方案2】:

    // 得到基数

    我同意@Jasper。改写你的问题。

    一个可能的解决方案可能是使用,

    n= xrange(valuemin,value)
    m= xrange(valuemin,value)
    puniform=random.sample(n, min(len (n) ,nlittle))
    rouniform=random.sample(m, min(len(m) ,nlittle))
    

    // 看看你的代码为什么会出错。

    您的 sn-p 代码可能会在多个实例中遇到问题。

    我们来个案例。

    nlittle 是 5 到 15 之间的随机整数。假设是 15 值在 0 到 100 之间。假设它已被分配 3。 希望,valuemin 小于 3 说 1。(我不能确定,因为我不知道 valoremin)

    您试图从给出错误的 2 个对象列表中获取 15 个对象的样本。

    在此处查看随机库的文档。会更有帮助 https://docs.python.org/2/library/random.html

    我在下面添加了 random.sample(pop,k) 网站的摘录。

    随机样本(人口,k)

    返回一个 k 长度的唯一元素列表 从种群序列中选择。用于无随机抽样 替换。

    2.3 版中的新功能。

    返回一个包含总体元素的新列表,同时 保持原始人口不变。结果列表在 选择顺序,以便所有子切片也将是有效的随机 样品。这允许对抽奖获胜者(样本)进行分区 分为大奖和第二名(子片)。

    人口中的成员不必是可散列的或唯一的。如果 种群包含重复,那么每次出现都是可能的 样本中的选择。

    要从整数范围中选择样本,请使用 xrange() 对象作为 一个论点。这对于采样特别快速且节省空间 来自大量人群:sample(xrange(10000000), 60)。

    【讨论】:

      猜你喜欢
      • 2015-07-15
      • 1970-01-01
      • 2021-12-12
      • 2014-01-18
      • 1970-01-01
      • 1970-01-01
      • 2019-05-31
      • 2016-02-11
      • 1970-01-01
      相关资源
      最近更新 更多