numpy.finfo#
- class numpy.finfo(dtype)[源码]#
浮点类型的机器限制。
- 参数:
- dtypefloat, dtype, or instance
要获取信息的浮点或复数浮点数据类型的种类。
备注
对于 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 开头的最小正浮点数。