numpy.finfo#
- class numpy.finfo(dtype)[source]#
Machine limits for floating point types.
- Parameters:
- dtypefloat, dtype, or instance
Kind of floating point or complex floating point data-type about which to get information.
See also
Notes
For developers of NumPy: do not instantiate this at the module level. The initial calculation of these parameters is expensive and negatively impacts import times. These objects are cached, so calling
finfo()
repeatedly inside your functions is not a problem.Note that
smallest_normal
is not actually the smallest positive representable value in a NumPy floating point type. As in the IEEE-754 standard [1], NumPy floating point types make use of subnormal numbers to fill the gap between 0 andsmallest_normal
. However, subnormal numbers may have significantly reduced precision [2].This function can also be used for complex data types as well. If used, the output will be the same as the corresponding real float type (e.g. numpy.finfo(numpy.csingle) is the same as numpy.finfo(numpy.single)). However, the output is true for the real and imaginary components.
References
[1]IEEE Standard for Floating-Point Arithmetic, IEEE Std 754-2008, pp.1-70, 2008, https://doi.org/10.1109/IEEESTD.2008.4610935
[2]Wikipedia, “Denormal Numbers”, https://en.wikipedia.org/wiki/Denormal_number
Examples
>>> import numpy as np >>> np.finfo(np.float64).dtype dtype('float64') >>> np.finfo(np.complex64).dtype dtype('float32')
- Attributes:
- bitsint
The number of bits occupied by the type.
- dtypedtype
Returns the dtype for which
finfo
returns information. For complex input, the returned dtype is the associatedfloat*
dtype for its real and complex components.- epsfloat
The difference between 1.0 and the next smallest representable float larger than 1.0. For example, for 64-bit binary floats in the IEEE-754 standard,
eps = 2**-52
, approximately 2.22e-16.- epsnegfloat
The difference between 1.0 and the next smallest representable float less than 1.0. For example, for 64-bit binary floats in the IEEE-754 standard,
epsneg = 2**-53
, approximately 1.11e-16.- iexpint
The number of bits in the exponent portion of the floating point representation.
- machepint
The exponent that yields eps.
- maxfloating point number of the appropriate type
The largest representable number.
- maxexpint
The smallest positive power of the base (2) that causes overflow.
- minfloating point number of the appropriate type
The smallest representable number, typically
-max
.- minexpint
The most negative power of the base (2) consistent with there being no leading 0’s in the mantissa.
- negepint
The exponent that yields epsneg.
- nexpint
The number of bits in the exponent including its sign and bias.
- nmantint
The number of bits in the mantissa.
- precisionint
The approximate number of decimal digits to which this kind of float is precise.
- resolutionfloating point number of the appropriate type
The approximate decimal resolution of this type, i.e.,
10**-precision
.tiny
floatReturn the value for tiny, alias of smallest_normal.
smallest_normal
floatReturn the value for the smallest normal.
- smallest_subnormalfloat
The smallest positive floating point number with 0 as leading bit in the mantissa following IEEE-754.