<p dir="ltr">I think the question is if scalars should be acceptable for the first argument, not if it should be for the 2nd and 3rd argument.</p>
<p dir="ltr">If scalar can be given for the first argument, the the first three makes sense. Although, I have no clue why we would allow that.</p>
<p dir="ltr">Ben Root</p>
<div class="gmail_quote">On Mar 12, 2015 9:25 PM, "Nathaniel Smith" <<a href="mailto:njs@pobox.com">njs@pobox.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">On Mar 12, 2015 5:02 PM, "Charles R Harris" <<a href="mailto:charlesr.harris@gmail.com" target="_blank">charlesr.harris@gmail.com</a>> wrote:<br>
><br>
> Hi All,<br>
><br>
> This is apropos gh-5582 dealing with some corner cases of np.where. The following are the current behavior<br>
><br>
> >>> import numpy<br>
> >>> numpy.where(True)  # case 1<br>
> ... (array([0]),)<br>
> >>> numpy.where(True, None, None)  # case 2<br>
> ... array(None, dtype=object)<br>
> >>> numpy.ma.where(True)  # case 3<br>
> ... (array([0]),)<br>
> >>> numpy.ma.where(True, None, None)  # case 4<br>
> ... (array([0]),)<br>
><br>
> The question is, what exactly should be done in these cases? I'd be inclined to raise an error for cases 1 and 3. Case two looks correct to me if we agree that scalar inputs are acceptable. Case 4 looks wrong.</p>
<p dir="ltr">I can't think of any reason scalars wouldn't be acceptable. So everything you suggest sounds right to me.</p>
<p dir="ltr">-n</p>
<div style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>Hi All,<br><br></div>This is apropos <a href="https://github.com/numpy/numpy/pull/5582" target="_blank">gh-5582</a> dealing with some corner cases of np.where. The following are the current behavior<br><br><pre><code>>>> import numpy
>>> numpy.where(True)  # case 1
... (array([0]),)
>>> numpy.where(True, None, None)  # case 2
... array(None, dtype=object)
>>> numpy.ma.where(True)  # case 3
... (array([0]),)
>>> numpy.ma.where(True, None, None)  # case 4
... (array([0]),)</code></pre>The question is, what exactly should be done in these cases? I'd be inclined to raise an error for cases 1 and 3. Case two looks correct to me if we agree that scalar inputs are acceptable. Case 4 looks wrong.<br><br></div>Thoughts?<br><br></div>Chuck<br></div>
<br>_______________________________________________<br>
NumPy-Discussion mailing list<br>
<a href="mailto:NumPy-Discussion@scipy.org" target="_blank">NumPy-Discussion@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
<br></div>
<br>_______________________________________________<br>
NumPy-Discussion mailing list<br>
<a href="mailto:NumPy-Discussion@scipy.org">NumPy-Discussion@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
<br></blockquote></div>