numpy.finfo#

class numpy.finfo(dtype)[源码]#

浮点类型的机器限制。

参数:
dtypefloat, dtype, or instance

要获取信息的浮点或复数浮点数据类型的种类。

另请参阅

iinfo

整数数据类型的等效函数。

spacing

值与最近邻数之间的距离

nextafter

从 x1 向 x2 方向的下一个浮点数值

备注

对于 NumPy 的开发者:请勿在模块级别实例化此对象。这些参数的初始计算成本很高,并且会对导入时间产生负面影响。这些对象是缓存的,因此在函数中反复调用 finfo() 不是问题。

请注意,smallest_normal 并不是 NumPy 浮点类型中实际最小的正可表示值。与 IEEE-754 标准 [1] 一样,NumPy 浮点类型使用次正规数来填充 0 和 smallest_normal 之间的空隙。然而,次正规数的精度可能会显著降低 [2]

对于 longdouble,其表示因平台而异。在大多数平台上,它是 IEEE 754 binary128(四精度)或 binary64-extended(80 位扩展精度)。在 PowerPC 系统上,它可能使用 IBM 双精度格式(两个 float64 值),该格式在精度和范围方面具有特殊性。

此函数也可用于复数数据类型。如果使用,输出将与相应的实数浮点类型相同(例如,numpy.finfo(numpy.csingle) 与 numpy.finfo(numpy.single) 相同)。但是,此输出对实部和虚部都是真实的。

参考

[1]

IEEE 标准浮点算术,IEEE Std 754-2008,pp.1-70,2008,https://doi.org/10.1109/IEEESTD.2008.4610935

[2]

维基百科,“Denormal Numbers”,https://en.wikipedia.org/wiki/Denormal_number

示例

>>> import numpy as np
>>> np.finfo(np.float64).dtype
dtype('float64')
>>> np.finfo(np.complex64).dtype
dtype('float32')
属性:
bitsint

该类型占用的位数。

dtypedtype

返回 finfo 返回信息的 dtype。对于复数输入,返回的 dtype 是其虚部和实部的相关 float* dtype。

epsfloat

1.0 与大于 1.0 的下一个可表示的最小浮点数之间的差值。例如,对于 IEEE-754 标准中的 64 位二进制浮点数,eps = 2**-52,大约为 2.22e-16。

epsnegfloat

1.0 与小于 1.0 的下一个可表示的最小浮点数之间的差值。例如,对于 IEEE-754 标准中的 64 位二进制浮点数,epsneg = 2**-53,大约为 1.11e-16。

iexpint

浮点表示中指数部分的位数。

machepint

产生 eps 的指数。

maxfloating point number of the appropriate type

可表示的最大数。

maxexpint

导致溢出的基数(2)的最小正幂。对应于 C 标准 MAX_EXP。

minfloating point number of the appropriate type

可表示的最小数,通常为 -max

minexpint

基数(2)的最小负幂,与尾数中没有前导 0 一致。对应于 C 标准 MIN_EXP - 1。

negepint

产生 epsneg 的指数。

nexpint

包括符号和偏差在内的指数位数。

nmantint

尾数中显式位数的数量(不包括归一化数的隐式前导位)。

precisionint

此种类浮点数精确的近似小数位数。

resolutionfloating point number of the appropriate type

此类型的近似十进制分辨率,即 10**-precision

tinyfloat

smallest_normal 的别名,为向后兼容而保留。

smallest_normalfloat

根据 IEEE-754,尾数中以 1 开头的最小正浮点数(参见注释)。

smallest_subnormalfloat

根据 IEEE-754,尾数中以 0 开头的最小正浮点数。