我需要找到一个尽可能接近零的 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
结果更小。使用即兴二进制搜索时,我可以在值向下舍入到 0.0
之前得到大约 1e-323
。
在 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
关于python - 最小的正 float64 数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38477908/