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 > [email protected] > http://mail.scipy.org/mailman/listinfo/numpy-discussion _______________________________________________ NumPy-Discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
