我需要找到一个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中的常数吗?或者,有没有正确的方法来做到这一点?
使用np.nextafter
.
>>> import numpy as np >>> np.nextafter(0, 1) 4.9406564584124654e-324 >>> np.nextafter(np.float32(0), np.float32(1)) 1.4012985e-45