# Python math.isnan() Method

In this tutorial, we will explore how to work with the isnan function in Python, including the function syntax, parameters, and return values. We will cover some basic examples of using this function.

The `math.isnan()` method in Python, provided by the math module, allows us to check if a given value is a `NaN` or `Not A Number` value or not. The function returns a Boolean `True` if the provided value is a `NaN` type, otherwise, it returns a Boolean`False`.

This is a very handy function especially when working with numerical data types to detect any missing or invalid values which are represented as `NaN` types.

## Import the Math Module

Let's start by importing the math module:

``````import math
``````

## Python `isnan()` Function Syntax

The following shows the syntax of the `isnan()` function in Python.

``````math.isnan(x)
``````

Where `x` is the value to check. It could be a float or an integer.

## Examples

Let's take a look at some examples to understand how `math.isnan()` works.

### Example 1 - Check if a value is `NaN`

``````import math

print(math.isnan(float('nan')))
print(math.isnan(10))
``````

Output:

``````True
False
``````

In the example above, the first print statement checks whether `float('nan')` is `NaN` or not, and since it is indeed `NaN`, it returns `True`.

The second print statement checks if 10 is `NaN`, and since it isn't, it returns `False`.

### Example 2 - Check `NaN` in a List

The `math.isnan()` method can be very useful when you need to check multiple values in a Python list.

``````import math

values = [10, float('nan'), 20, float('nan'), 30]

for value in values:
if math.isnan(value):
print(f"{value} is NaN")
else:
print(f"{value} is not NaN")
``````

Output:

``````10 is not NaN
nan is NaN
20 is not NaN
nan is NaN
30 is not NaN
``````

In this case, we use a `for` loop to iterate through a list that contains both numeric and `NaN` values.

We then use the `math.isnan()` function to check whether each value is `NaN` or not. and print the corresponding value.

### Example 3 - Filter out `NaN` values from a List

We can also use `math.isnan()` to filter out the `NaN` values from a list.

``````import math

values = [10, float('nan'), 20, float('nan'), 30]

# Filter out the NaN values
filtered_values = [value for value in values if not math.isnan(value)]

print(filtered_values)
``````

Output:

``````[10, 20, 30]
``````

In the example above, we use Python list comprehension to create a new list that only contains the values that are not `NaN`.

Note: The `math.isnan()` will raise a `TypeError` if the argument is not numeric, so it's generally a good idea to ensure the data being checked is indeed numeric.

## Conclusion

In this tutorial, we learned how we can work with the `isnan()` function to check whether a given input is a `NaN` type or not. We also discussed various examples, including how to filter `NaN` or non-NaN values in a Python list.