【发布时间】:2012-03-13 10:52:31
【问题描述】:
像numpy.random.uniform() 这样的函数返回两个边界之间的浮点值,包括第一个边界,但不包括顶部。也就是说,numpy.random.uniform(0,1) 可能会产生 0,但永远不会产生 1。
我正在获取这些数字并使用有时会返回超出范围的结果的函数来处理它们。我可以使用 numpy.clip() 将范围之外的值切回 0-1,但不幸的是,该限制包含的最高数字。
如何在python中指定“无限小于1的数”?
【问题讨论】:
-
如果要相信数学,你就不能。
-
在大多数系统中都有一个epsilon的概念,它是最小的增量
-
呃-哦,我能感觉到
0.99999... < 1的火焰战争正在酝酿中 -
我不认为我处于悖论(或火焰战争)领域。或者你是说
numpy.random.uniform(0,1)实际上有时会返回一个等于 1 的数字?如果是这样的话,好吧,好吧。我并不真正关心这个悖论,但我希望我的修改后剪辑的数字能够保证在与原始数字相同的范围内。 -
我认为 wim 指的是实数 0.9999...(重复)在数学中实际上正好是 1。浮点数不是实数,因此它与您的问题并不特别相关。但是,我将借此机会记录
uniform(x,y)可能(非常罕见!)给您的结果等于y的情况。uniform(0,1)不应该发生这种情况,但在其他情况下,用于将底层[0,1)随机数重新缩放到您的界限的浮点算法有时可能会准确地给出y。
标签: python numpy floating-point clipping