Related Articles

# Check if the value is infinity or NaN in Python

• Last Updated : 23 Aug, 2021

In this article, we will check whether the given value is NaN or Infinity. This can be done using the math module. Let’s see how to check each value in detail.

## Check if the value is NaN

NaN Stands for “Not a Number” and it is a numeric datatype used as a proxy for values that are either mathematically undefined or cannot be represented.  There are various examples of them like-

1. 0/0 is undefined and NaN is used for representing it.
2. Sqrt(-ve number) cannot be stored as a real number so NaN is used for representing it.
3. Log(-ve number) cannot be stored as a real number so NaN is used for representing it.
4. Inverse sin or Inverse cos of a number < -1 or number > 1 is also NaN.
5. 0 * inf also leads to NaN.

Since NaN is type in itself It is used to assign variables whose values are not yet calculated.

Method 1: To check for NaN we can use math.isnan() function as NaN cannot be tested using == operator.

## 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"``)`
Output

```x contains nan
x == nan```

Method 2: NaN is not equal to NaN and therefore we can exploit this property to check for NaN. The following code demonstrates it.

## 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))`

Output
`True`

## Check if the Value is Infinite

Method 1: To check for infinite in python the function used is math.isinf() which only checks for infinite. To distinguish between positive and negative infinite we can add more logic that checks if the number is greater than 0 or less than 0. The code shows this in action.

## 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)`

Output

```x is Positive inf
x is negative inf```

Method 2: Numpy also exposes two APIs to check for positive and negative infinite. which are np.isneginf() and 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]))`

Output

```[False False  True]
[ True False False]```

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course

My Personal Notes arrow_drop_up