Python:Geomspace和Logspace不会返回真正的边界

时间:2017-05-23 16:02:02

标签: python python-3.x numpy

我正在尝试使用python 3和numpy在logscale中创建一个数组。

我的数组的boudaries存在问题,返回的数组的下限低于我想要的限制。

例如:

In : a = np.array(379/19)
In : x = np.geomspace(a, 20)
In : x[0] >= a
Out: False

而使用linspace它可以工作:

In : y = np.linspace(a, 20)
In : y[0] >= a
Out: True

是否存在logspace和geomspace的已知问题?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

你基本上是testing floats for equality,这是一个坏主意。

a    is 19.94736842105263
x[0] is 19.947368421052627
y[0] is 19.94736842105263

所以他们非常接近,但不完全相同。这就是浮点数学通常的工作方式,由于舍入误差,你通常无法保证一个是大于还是小于另一个。

你准备用这些边界做什么?