numpy.finfo#

class numpy.finfo(dtype)[source]#

浮点类型机器限制。

参数:
dtypefloat, dtype 或实例

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

另请参见

iinfo

整数数据类型的等效项。

spacing

值与其最近的相邻数字之间的距离

nextafter

x1 之后朝向 x2 的下一个浮点值

备注

对于 NumPy 开发人员:不要在模块级别实例化它。这些参数的初始计算很昂贵,会对导入时间产生负面影响。这些对象被缓存,因此在函数内部重复调用 finfo() 不会有问题。

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

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

参考文献

[1]

IEEE 浮点运算标准,IEEE Std 754-2008,第 1-70 页,2008 年,https://doi.org/10.1109/IEEESTD.2008.4610935

[2]

维基百科,“次正规数”,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 的指数。

max相应类型的浮点数

可表示的最大数字。

maxexpint

导致溢出的基数 (2) 的最小正幂。

min相应类型的浮点数

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

minexpint

与尾数中没有前导 0 一致的基数 (2) 的最负幂。

negepint

产生 epsneg 的指数。

nexpint

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

nmantint

尾数中的位数。

precisionint

此类浮点数精确的十进制数字的近似数量。

resolution相应类型的浮点数

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

tinyfloat

返回 tiny 的值,别名为 smallest_normal。

smallest_normalfloat

返回最小正规数的值。

smallest_subnormalfloat

尾数中以 0 作为前导位的 IEEE-754 最小的正浮点数。