我需要找到尽可能接近零的numpy.float64
值。
Numpy提供了几个允许执行类似操作的常量:
np.finfo(np.float64).eps = 2.2204460492503131e-16
np.finfo(np.float64).tiny = 2.2250738585072014e-308
这些都相当小,但是当我这样做时
>>> x = np.finfo(np.float64).tiny
>>> x / 2
6.9533558078350043e-310
结果甚至更小。使用即兴二进制搜索时,我可以在值向下舍入到1e-323
之前使用约0.0
。
我失踪的numpy是否有一个常数?或者,是否有正确的方式来执行此操作?
答案 0 :(得分:12)
使用np.nextafter
。
>>> import numpy as np
>>> np.nextafter(0, 1)
4.9406564584124654e-324
>>> np.nextafter(np.float32(0), np.float32(1))
1.4012985e-45
答案 1 :(得分:0)
2^-1075 是最小的正浮点数。 2^-1075 = 5.10^-324