En este artículo, comprobaremos si el valor dado es NaN o Infinity. Esto se puede hacer usando el módulo matemático. Veamos cómo verificar cada valor en detalle.
Compruebe si el valor es NaN
NaN significa » No es un número » y es un tipo de datos numérico que se utiliza como proxy de valores que no están definidos matemáticamente o no se pueden representar. Hay varios ejemplos de ellos como-
- 0/0 no está definido y se usa NaN para representarlo.
- Sqrt(-ve número) no se puede almacenar como un número real, por lo que se usa NaN para representarlo.
- Log(-ve número) no se puede almacenar como un número real, por lo que se usa NaN para representarlo.
- El seno inverso o el coseno inverso de un número < -1 o un número > 1 también es NaN.
- 0 * inf también conduce a NaN.
Dado que NaN es un tipo en sí mismo, se utiliza para asignar variables cuyos valores aún no están calculados.
Método 1 : para verificar NaN podemos usar la función math.isnan() ya que NaN no se puede probar usando el operador ==.
Python3
import math x = math.nan print(f"x contains {x}") # checks if variable is equal to NaN if(math.isnan(x)): print("x == nan") else: print("x != nan")
x contains nan x == nan
Método 2: NaN no es igual a NaN y, por lo tanto, podemos aprovechar esta propiedad para verificar NaN. El siguiente código lo demuestra.
Python3
import math def isNan(number): # This function compares number to itself. # NaN != NaN and therefore it will return # true if the number is Nan return number != number # Driver Code x = math.nan print(isNan(x))
True
Comprobar si el valor es infinito
Método 1: para verificar infinito en python, la función utilizada es math.isinf(), que solo verifica infinito. Para distinguir entre infinito positivo y negativo, podemos agregar más lógica que verifique si el número es mayor que 0 o menor que 0. El código muestra esto en acción.
Python3
import math # Function checks if negative or # positive infinite. def check(x): if(math.isinf(x) and x > 0): print("x is Positive inf") elif(math.isinf(x) and x < 0): print("x is negative inf") else: print("x is not inf") # Creating inf using math module. number = math.inf check(number) number = -math.inf check(number)
x is Positive inf x is negative inf
Método 2: Numpy también expone dos API para verificar el infinito positivo y negativo. que son np.isneginf() y np.isposinf() .
Python3
# pip install numpy import numpy as np print(np.isneginf([np.inf, 0, -np.inf])) print(np.isposinf([np.inf, 0, -np.inf]))
Producción
[False False True] [ True False False]
Publicación traducida automáticamente
Artículo escrito por arun singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA