# Removing nan values from an array

If you're using numpy for your arrays, you can also use

`x = x[numpy.logical_not(numpy.isnan(x))]`

Equivalently

`x = x[~numpy.isnan(x)]`

[Thanks to chbrown for the added shorthand]

**Explanation**

The inner function, `numpy.isnan`

returns a boolean/logical array which has the value `True`

everywhere that `x`

is not-a-number. As we want the opposite, we use the logical-not operator, `~`

to get an array with `True`

s everywhere that `x`

**is** a valid number.

Lastly we use this logical array to index into the original array `x`

, to retrieve just the non-NaN values.

Try this:

`import mathprint [value for value in x if not math.isnan(value)]`

For more, read on List Comprehensions.