How to check the size of a float in python?

Properties of a Python float can be requested via sys.float_info. It returns information such as max/min value, max/min exp value, etc. These properties can potentially be used to calculate the byte size of a float. I never encountered anything else than 64 bit, though, on many different architectures.

The items of a NumPy array might have different size, but you can check their size in bytes by a.itemsize, where a is a NumPy array.


numpy.finfo lists sizes and other attributes of float32 ..., including
nexp : number of bits in the exponent including its sign and bias.
nmant : number of bits in the mantissa.
On a machine with IEEE-754 standard floating point,

import numpy as np
for f in (np.float32, np.float64, float):
    finfo = np.finfo(f)
    print finfo.dtype, finfo.nexp, finfo.nmant

will print e.g.

float32 8 23
float64 11 52
float64 11 52

(Try float16 and float128 too.)

Tags:

Python

Numpy