numpy.finfo#
- classnumpy.finfo(dtype)[source]#
Machine limits for floating point types.
- Parameters:
- dtypefloat, dtype, or instance
Kind of floating point or complex floating pointdata-type about which to get information.
- Attributes:
- bitsint
The number of bits occupied by the type.
- dtypedtype
Returns the dtype for which
finforeturns information. For complexinput, the returned dtype is the associatedfloat*dtype for itsreal and complex components.- epsfloat
The difference between 1.0 and the next smallest representable floatlarger than 1.0. For example, for 64-bit binary floats in the IEEE-754standard,
eps=2**-52, approximately 2.22e-16.- epsnegfloat
The difference between 1.0 and the next smallest representable floatless than 1.0. For example, for 64-bit binary floats in the IEEE-754standard,
epsneg=2**-53, approximately 1.11e-16.- iexpint
The number of bits in the exponent portion of the floating pointrepresentation.
- machepint
The exponent that yieldseps.
- maxfloating point number of the appropriate type
The largest representable number.
- maxexpint
The smallest positive power of the base (2) that causes overflow.Corresponds to the C standard MAX_EXP.
- minfloating point number of the appropriate type
The smallest representable number, typically
-max.- minexpint
The most negative power of the base (2) consistent with therebeing no leading 0’s in the mantissa. Corresponds to the Cstandard MIN_EXP - 1.
- negepint
The exponent that yields
epsneg.- nexpint
The number of bits in the exponent including its sign and bias.
- nmantint
The number of explicit bits in the mantissa (excluding the implicitleading bit for normalized numbers).
- precisionint
The approximate number of decimal digits to which this kind offloat is precise.
- resolutionfloating point number of the appropriate type
The approximate decimal resolution of this type, i.e.,
10**-precision.- tinyfloat
An alias forsmallest_normal, kept for backwards compatibility.
- smallest_normalfloat
The smallest positive floating point number with 1 as leading bit inthe mantissa following IEEE-754 (see Notes).
- smallest_subnormalfloat
The smallest positive floating point number with 0 as leading bit inthe mantissa following IEEE-754.
See also
Notes
For developers of NumPy: do not instantiate this at the module level.The initial calculation of these parameters is expensive and negativelyimpacts import times. These objects are cached, so calling
finfo()repeatedly inside your functions is not a problem.Note that
smallest_normalis not actually the smallest positiverepresentable value in a NumPy floating point type. As in the IEEE-754standard[1], NumPy floating point types make use of subnormal numbers tofill the gap between 0 andsmallest_normal. However, subnormal numbersmay have significantly reduced precision[2].For
longdouble, the representation varies across platforms. On mostplatforms it is IEEE 754 binary128 (quad precision) or binary64-extended(80-bit extended precision). On PowerPC systems, it may use the IBMdouble-double format (a pair of float64 values), which has specialcharacteristics for precision and range.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
>>>importnumpyasnp>>>np.finfo(np.float64).dtypedtype('float64')>>>np.finfo(np.complex64).dtypedtype('float32')