<div dir="ltr"><br><div class="gmail_extra"><snip><br></div><div class="gmail_extra"><div class="gmail_quote"><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div class=""><div class="h5">
<br>
</div></div>Please, no. It's another thing to remember and another way to shoot<br>
yourself in the foot and introduce casual bugs.<br>
<br>
FWIW, my vote is to raise an error or return a nan, which will likely<br>
eventually raise an error. If I have all nans, it's usually the case<br>
that something's off, and I'd like to know sooner rather than later.<br>
<span class=""><font color="#888888"><br></font></span></blockquote><div><br></div><div>Here is what I have currently implemented. First, define an AllNanError<br><br><span style="font-family:courier new,monospace">class AllNanError(ValueError):<br>
    def __init__(self, msg, result):<br>        ValueError.__init__(self, msg)<br>        self.result = result</span><br> <br></div><div>For nanmax/nanmin/nanargmax/nanargmin this error is raised for all-nan axis<br></div>
<div>and the result is attached. The exception can then be caught and the result examined. A ValueError is what amax, amin return for empty arrays.<br><br></div><div>For nanmax/nanmin the result for an empty slice is nan. For argnanmax/argnanmin the result of an empty slice is -1, which is easier to read and remember than intp.min. A ValueError is what argmin, argmax currently return for empty arrays. Note that both of these functions can give wrong results if they contain some min/max values respectively. That is an old bug and I haven't fixed it.<br>
<br></div><div>The nanmean/nanvar/nanstd functions currently raise a warning for all-nan slices and the result for such is nan. These could also be made to raise an error.<br><br></div><div>Thoughts?<br><br></div><div>Chuck<br>
</div><br></div></div></div>