[Numpy-discussion] Behavior of nan{max, min} and nanarg{max, min} for all-nan slices.

Skipper Seabold jsseabold at gmail.com
Thu Oct 3 09:57:21 EDT 2013

On Thu, Oct 3, 2013 at 9:10 AM, Benjamin Root <ben.root at ou.edu> wrote:
> On Thu, Oct 3, 2013 at 6:06 AM, Daniele Nicolodi <daniele at grinta.net> wrote:
>> Hello,
>> sorry, I don't know where exactly jump in in the thread, it is getting
>> quite long and articulated...
>> On 02/10/2013 21:19, Charles R Harris wrote:
>> > The main problem I had was deciding what arg{max, min} should return as
>> > the return value is an integer. I like your suggestion of returning 0.
>> What about returning -1? It is still an integer (on my numpy version the
>> return value is a signed integer), it still has the property that
>> a[np.argmin(a)] == nan for a of only nans, but it is easily identifiable
>> as an anomalous return value if needed.
> This actually makes a lot of sense. We would never return -1 for any other
> reason. And if it is used for indexing anywhere else, that's (mostly) ok. A
> problem might occur if the indexes gathered from this function are then used
> to define slices. But I can't really convince myself that it would be all
> that terrible in that case, too. Documentation will be paramount here.

Please, no. It's another thing to remember and another way to shoot
yourself in the foot and introduce casual bugs.

FWIW, my vote is to raise an error or return a nan, which will likely
eventually raise an error. If I have all nans, it's usually the case
that something's off, and I'd like to know sooner rather than later.


More information about the NumPy-Discussion mailing list