我正在尝试使用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的已知问题?
感谢您的帮助!
答案 0 :(得分:1)
你基本上是testing floats for equality,这是一个坏主意。
a is 19.94736842105263
x[0] is 19.947368421052627
y[0] is 19.94736842105263
所以他们非常接近,但不完全相同。这就是浮点数学通常的工作方式,由于舍入误差,你通常无法保证一个是大于还是小于另一个。
你准备用这些边界做什么?