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.