[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]
>
> In [142]: mask
> 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
More information about the NumPy-Discussion
mailing list