# [Numpy-discussion] Why NaN?

Perry Greenfield perry@stsci....
Tue Aug 4 11:57:23 CDT 2009

```Note that NaN generally contaminates sums and other net results (as it
should). You should filter them out (there is more than one way to do
that). But also note that the IEEE standard for floating point numbers
requires NaN != Nan. Thus any attempts to find where NaNs that way is
destined to fail. Use the function isnan() instead to generate a mask.

Perry

On Aug 4, 2009, at 12:46 PM, Gökhan Sever wrote:

> Hello,
>
> I know this has to have a very simple answer, but stuck at this very
> moment and can't get a meaningful result out of np.mean()
>
>
> In [121]: a = array([NaN, 4, NaN, 12])
>
> In [122]: b = array([NaN, 2, NaN, 3])
>
> In [123]: c = a/b
>
> In [124]: mean(c)
> Out[124]: nan
>
> In [125]: mean a
> --------> mean(a)
> Out[125]: nan
>
> Further when I tried:
>
> In [138]: c
> Out[138]: array([ NaN,   2.,  NaN,   4.])
>
> In [139]: np.where(c==NaN)
> Out[139]: (array([], dtype=int32),)
>
>
> In [141]: mask = [c != NaN]
>
> Out[142]: [array([ True,  True,  True,  True], dtype=bool)]
>
>
> Any ideas?
>
> --
> Gökhan
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion

```