python - 最小的正 float64 数字

标签 python numpy

我需要找到一个尽可能接近零的 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/

相关文章:

android - Kivy 启动器无法与 numpy 一起使用

python - Django DecimalField 在保存时生成 "quantize result has too many digits for current context"错误

Python 抛出奇怪的 NameError : name <function_name> is not defined

python - 基于区域的图像检测与状态验证

python - 如果该 RGB 值属于列表,如何替换图像中的所有 RGB 值

python - python中的加速地理定位算法

Python:上下对齐 bool numpy 数组的索引

python 导入变量

python - 如何在Python中查找字符串中的偶数

python - Pandas 多列中的第二和第三大值