Я хочу проверить, действительно ли поплавок - 32 или 64 бита (и количество бит массива float numpy). Там должен быть встроенный, но просто не узнал...
Как проверить размер float в python?
Ответ 1
Размер Python float
можно запросить через sys.float_info
. Однако я никогда не встречал ничего, кроме 64 бит, на разных архитектурах.
Элементы массива NumPy могут иметь разный размер, но вы можете проверить их размер в байтах на a.itemsize
, где a
- массив NumPy.
Ответ 2
numpy.finfo перечисляет размеры и другие атрибуты float32..., включая
nexp: количество бит в экспоненте, включая знак и смещение.
nmant: количество бит в мантиссе.
На машине с IEEE-754
стандартная плавающая точка,
import numpy as np
for f in (np.float32, np.float64, float):
finfo = np.finfo(f)
print finfo.dtype, finfo.nexp, finfo.nmant
будет напечатан, например,
float32 8 23
float64 11 52
float64 11 52
(Попробуйте float16 и float128 тоже.)
Ответ 3
Диапазон значений с плавающей запятой доступен в объекте sys.float_info
.
Как говорит Свен, для CPython float
всегда 64-бит. Но ссылка на язык Python говорит
Вы пользуетесь базовой машинной архитектурой (и реализацией C или Java) для принятого диапазона... ".
Так что это не обязательно для других реализаций Python.
Ответ 4
print numpy.finfo(numpy.float)
Machine parameters for float64
---------------------------------------------------------------------
precision= 15 resolution= 1.0000000000000001e-15
machep= -52 eps= 2.2204460492503131e-16
negep = -53 epsneg= 1.1102230246251565e-16
minexp= -1022 tiny= 2.2250738585072014e-308
maxexp= 1024 max= 1.7976931348623157e+308
nexp = 11 min= -max
---------------------------------------------------------------------