# Not a number#

Not a number is a special floating point value to signal that the result of a floating point calculation is invalid.

In text we usually use NaN to refer to the Not-a-Number value.

For example, dividing 0 by 0 is invalid, and returns a NaN value:

```
import numpy as np
```

```
np.array(0) / 0
```

```
/tmp/ipykernel_4453/2135315712.py:1: RuntimeWarning: invalid value encountered in divide
np.array(0) / 0
```

```
nan
```

As you see above, Numpy uses all lower-case: `nan`

for the NaN value.

You can also find the NaN value in the Numpy module:

```
np.nan
```

```
nan
```

## NaN values are not equal to anything#

The NaN value has some specific properties.

It is not equal to anything, even itself:

```
np.nan == 0
```

```
False
```

```
np.nan == np.nan
```

```
False
```

## Detecting NaN values#

You have found above that you cannot look for NaN values by using `== np.nan`

.

To allow for this, use `np.isnan`

to tell you whether a number or an array
element is NaN.

```
np.isnan([0, np.nan])
```

```
array([False, True])
```