Quiero comprobar si un flotante es en realidad 32 o 64 bits (y el número de bits de una matriz flotante numpy). Debe haber un built-in, pero simplemente no lo averiguó ...¿Cómo verificar el tamaño de un flotador en python?
Respuesta
El tamaño de un Python float
se puede solicitar a través de sys.float_info
. Sin embargo, nunca me encontré con nada más que 64 bits en muchas arquitecturas diferentes.
Los elementos de una matriz NumPy podrían tener diferente tamaño, pero se puede comprobar su tamaño en bytes por a.itemsize
, donde a
es una matriz NumPy.
El rango de valores de coma flotante está disponible en el objeto sys.float_info
.
Como dice Sven, para CPython float
siempre es de 64 bits. Pero Python's language reference dice
Usted está a merced de la arquitectura de la máquina subyacente (y C o Java aplicación) para el rango aceptado ... ".
Así que esto no es necesariamente el caso de otra implementaciones de Python
Dado que OP usa NumPy, es probable que no le preocupen demasiado otras implementaciones de Python. Buen punto, sin embargo. :) –
numpy.finfo enumera los tamaños y otros atributos de float32 ..., incluyendo
Nexp:.. número de bits en el exponente incluyendo su signo y el sesgo
nmant: número de bits en la mantisa.
En una máquina con IEEE-754 punto flotante estándar,
import numpy as np
for f in (np.float32, np.float64, float):
finfo = np.finfo(f)
print finfo.dtype, finfo.nexp, finfo.nmant
imprimirá por ejemplo
float32 8 23
float64 11 52
float64 11 52
(Trate float16 y float128 también.)
más un bit para el signo – denfromufa
float16 \t Float de media precisión: bit de signo, 5 bits exponente, 10 bits mantissa; float32 \t Flotador de precisión simple: bit de signo, exponente de 8 bits, mantisa de 23 bits; float64 \t Flotador de precisión doble: bit de signo, exponente de 11 bits, mantisa de 52 bits – denfromufa
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
---------------------------------------------------------------------
- 1. ¿Cómo verificar el tamaño de un archivo?
- 2. Formateando un flotador nan en python
- 3. En Python, ¿cómo puedo verificar el tamaño de un objeto StringIO?
- 4. ¿Cómo determino el tamaño de un archivo abierto en Python?
- 5. flotador de python en la conversión int
- 6. ValueError: inválido literal de flotador() en Python
- 7. Cómo distinguir diferentes tipos de flotador NaN en Python
- 8. ¿Cómo verificar EOF en Python?
- 9. ¿Cómo verificar el tipo de variable? Python
- 10. Timedelta se multiplica con flotador en python
- 11. ¿Cómo establecer el tamaño inicial de un diccionario en Python?
- 12. Anulación operador + en Python para el flotador + obj
- 13. python. obtener el tamaño de un objeto
- 14. ¿Cómo verificar el código fuente de un método python?
- 15. Java: ¿cómo verificar el tamaño actual de Perm/PermGen?
- 16. ¿Cómo verificar el tamaño de entrada del archivo con jQuery?
- 17. Truncar un flotador en Erlang
- 18. Al tomar la palabra de un flotador
- 19. Python: ¿Cómo puedo verificar el número de tareas pendientes en un multiprocesamiento.Pool?
- 20. Verificar el tamaño de cola de RabbitMQ desde el cliente
- 21. C#: Convertir matriz de bytes en un flotador
- 22. Selección de un flotador en MySQL
- 23. ¿Cómo verificar el último elemento de una lista de Python?
- 24. Asp.Net Verificar el tamaño del archivo antes de cargar
- 25. ¿Cómo puedo aumentar el tamaño de la pila en Python?
- 26. Objective-C cómo imprimir el 0 para un flotador?
- 27. convertir un flotador a cadena en F #?
- 28. Cómo calcular la raíz cuadrada de un flotador en C#
- 29. flotador: dejado en objetivo-c
- 30. ¿Cómo verificar las dimensiones de todas las imágenes en un directorio usando python?
sys.float_info contiene muchas propiedades interesantes, pero el tamaño de un flotador no es uno de ellos –
@ panda-34 Depende qué es exactamente lo que quiere decir con "tamaño". En cualquier caso, esa es la mejor información que puede obtener. (Puede recuperar fácilmente el tamaño en bits de la información en 'sys.float_info', pero me pregunto cómo podría ser útil alguna vez). –
OP simplemente preguntó sobre el tamaño en bits, 32 o 64 y no puede recuperar el tamaño en bits de float_info a menos que quieras hacer algunas conjeturas basadas en el rango del exponente y la longitud de la mantisa –