[Numpy-discussion] nan, sign, and all that

Charles R Harris charlesr.harris at gmail.com
Thu Oct 2 02:03:43 EDT 2008


Hi All,

I've added ufuncs fmin and fmax that behave as follows:

In [3]: a = array([NAN, 0, NAN, 1])

In [4]: b = array([0, NAN, NAN, 0])

In [5]: fmax(a,b)
Out[5]: array([  0.,   0.,  NaN,   1.])

In [6]: fmin(a,b)
Out[6]: array([  0.,   0.,  NaN,   0.])

In [7]: fmax.reduce(a)
Out[7]: 1.0

In [8]: fmin.reduce(a)
Out[8]: 0.0

In [9]: fmax.reduce([NAN,NAN])
Out[9]: nan

In [10]: fmin.reduce([NAN,NAN])
Out[10]: nan

I also made the sign ufunc return the sign of nan. That works, but I'm not
sure it is the way to go because there doesn't seem to be any spec as to
what sign nan takes. The current np.nan on my machine is negative and 0/0,
inf/inf all return negative nan. So it doesn't look like the actual sign of
nan makes any sense. Currently sign(NAN) returns 0, which doesn't look right
either, so I think the thing to do is return nan but this will be a change
in numpy behavior. Any thoughts?

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20081002/e5f55bbf/attachment.html>


More information about the NumPy-Discussion mailing list