【问题标题】:Include upper bound on numpy random.uniform [duplicate]包括numpy random.uniform的上限[重复]
【发布时间】:2020-02-06 21:34:03
【问题描述】:

我试图使用 numpy.random.uniform 在 (-1, 1) 上选择一个实数,但我注意到上限 1 被排除在外。有没有办法也包括上限?

【问题讨论】:

  • 欢迎堆栈溢出!根据您自己的研究,到目前为止您尝试过什么?例如,在函数的文档中,您可以传递参数来设置间隔的专属high数字,您是否尝试过更改?
  • 我不能只改变高位,因为说 1.1 也允许 1.0 和 1.1 之间的值
  • 如果包括 1.0 的上限,大约每九亿分之一出现一次。这会对您的应用程序产生什么实际影响?在[-1.0, 1.0] 范围内还有许多其他完全可表示的浮点数,它们也永远无法由numpy.random.uniform 生成(例如,浮点数0.1 就是其中之一)。我认为,如果这些缺失的数字不是问题,那么无法生成 1.0 也不太可能成为问题。

标签: python python-3.x numpy random


【解决方案1】:
## -------------------- uniform distribution -------------------

    def uniform(self, a, b):
        "Get a random number in the range [a, b) or [a, b] depending on rounding."
        return a + (b-a) * self.random()

如果您想根据定义保持均匀分布,您可以使用round 函数强制四舍五入到某个数字,以便有机会偶然达到 1。

round(number, number of digits)

【讨论】:

  • 这看起来是一个有趣的方法!肯定会尝试,但仍然认为 numpy 应该在高价值上包含一个包容性选项
  • @learner:为什么你认为 NumPy 应该包含这样的选项?你能想出一个实际的用例,它会有所作为吗?
猜你喜欢
  • 2018-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多