¿Es posible establecer un elemento de una matriz en NaN
en Python?python nan and inf values
Además, ¿es posible establecer una variable a +/- infinito? Si es así, ¿hay alguna función para verificar si un número es infinito o no?
¿Es posible establecer un elemento de una matriz en NaN
en Python?python nan and inf values
Además, ¿es posible establecer una variable a +/- infinito? Si es así, ¿hay alguna función para verificar si un número es infinito o no?
moldeada de cadena usando float()
:
>>> float('NaN')
nan
>>> float('Inf')
inf
>>> -float('Inf')
-inf
>>> float('Inf') == float('Inf')
True
>>> float('Inf') == 1
False
¡Eso me enseñará a no saltar con una broma antes de leer la pregunta por segunda vez! ¡Lo siento! Dicho esto, no estaría de más decirlo así porque es una trampa fácil de caer, NaN! = NaN –
también tenga en cuenta: >>> float ('Inf') - float ('Inf') === > nan – ntg
Al utilizar Python 2.4, intente
inf = float("9e999")
nan = inf - inf
Estoy frente a la cuestión cuando estaba portar el simplejson a un dispositivo integrado que ejecuta el Python 2.4, float("9e999")
arreglado. No use inf = 9e999
, necesita convertirlo de cadena. -inf
da el -Infinity
.
¿Es posible establecer un elemento de una matriz en NaN en Python?
Sí, siempre se puede incluir una o NaN
inf
en un pitón list
(y similares). Sin embargo, si desea incluirlo en un array
(por ejemplo array.array
o numpy.array
), entonces el tipo de la matriz debe ser float
o complex
!
>>> import math
>>> import numpy as np
>>> arr = np.ones(1, float) # float array
>>> arr[0] = math.nan
>>> arr
array([ nan])
>>> [math.nan, math.inf, -math.inf] # python list
[nan, inf, -inf]
El -module math
contiene constants for nan
and inf
(since Python 3.5) así como algunas funciones (disponible desde Python 2.6) Para comprobar estos:
math.isnan
comprueba si el valor es nan
:
>>> math.isnan(math.nan) # nan
True
math.isinf
comprueba si el valor es infinito (positivo o negativo):
>>> math.isinf(math.inf) # positive infinity
True
>>> math.isinf(-math.inf) # negative infinity
True
Y una función que puede comprobar si un número es noinf
o nan
: math.isfinite
(disponible para Python 3.2+)
>>> math.isfinite(math.inf)
False
>>> math.isfinite(math.nan)
False
>>> math.isfinite(11.2)
True
http://stackoverflow.com/questions/944700/ dice cómo verificar NaN Para Inf y -si puede probar con == pero eso no funciona para NaN debido a las reglas IEEE754 para NaN. –
Creo que la forma más confiable es usar funciones adecuadas como 'isinf' e' isnan' proporcionadas por 'numpy'. Ver mi respuesta a continuación. –