<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sat, Mar 26, 2016 at 11:10 PM, Juan Nunez-Iglesias <span dir="ltr"><<a href="mailto:jni.soma@gmail.com" target="_blank">jni.soma@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div>
<div name="messageBodySection">Just to clarify, this will only affect weighted bincounts, right? I can't tell you in how many places my code depends on the return type being integer!!!</div></div></blockquote><div><br></div><div>Indeed! Unweighted bincounts still return, as all counting operations, a np.intp array. Sorry for the noise!</div><div><br></div><div>Jaime</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
<div name="messageSignatureSection"><br></div>
<div name="messageReplySection"><div><div class="h5"><br>
On 27 Mar 2016, 7:16 AM +1100, Jaime Fernández del Río <<a href="mailto:jaime.frio@gmail.com" target="_blank">jaime.frio@gmail.com</a>>, wrote:<br>
</div></div><blockquote type="cite"><div><div class="h5">
<div dir="ltr">Hi all,
<div><br></div>
<div>I have just submitted a PR (<a href="https://github.com/numpy/numpy/pull/7464" target="_blank">#7464</a>) that fixes an enhancement request (<a href="https://github.com/numpy/numpy/issues/6854" target="_blank">#6854</a>), making <font face="monospace, monospace">np.bincount</font> return an array of the same type as the <font face="monospace, monospace">weights</font> parameter.  This is an important deviation from current behavior, which always casts <font face="monospace, monospace">weights</font> to <font face="monospace, monospace">double</font>, and always returns a <font face="monospace, monospace">double</font> array, so I would like to hear what others think about the worthiness of this.  Main discussion points:</div>
<div>
<ul>
<li><font face="monospace, monospace">np.bincount</font> now works with complex weights (yay!), I guess this should be a pretty uncontroversial enhancement.</li>
<li>The return is of the same type as <font face="monospace, monospace">weights</font>, which means that small integers are very likely to overflow.  This is exactly what #6854 requested, but perhaps we should promote the output for integers to a <font face="monospace, monospace">long</font>, as we do in <font face="monospace, monospace">np.sum</font>?</li>
<li>Boolean arrays stay boolean, and OR, rather than sum, the weights. Is this what one would want? If we decide that integer promotion is the way to go, perhaps booleans should go in the same pack?</li>
<li>This new implementation currently supports all of the reasonable native types, but has no fallback for user defined types.  I guess we should attempt to cast the array to double as before if no native loop can be found? It would be good to have a way of testing this though, any thoughts on how to go about this?</li>
<li>Does a behavior change like this require some deprecation period? What would that look like?</li>
<li>I have also added broadcasting of weights to the full size of list, so that one can do e.g. <font face="monospace, monospace">np.bincount([1, 2, 3], weights=2j)</font> without having to tile the single weight to the size of the bins list.<br></li>
</ul>
<div>Any other thoughts are very welcome as well!</div>
<div><br></div>
<div>Jaime</div>
<div><br></div>
--<br>
<div>(\__/)<br>
( O.o)<br>
( > <) Este es Conejo. Copia a Conejo en tu firma y ayúdale en sus planes de dominación mundial.</div>
</div>
</div></div></div>
_______________________________________________<br>
NumPy-Discussion mailing list<br>
<a href="mailto:NumPy-Discussion@scipy.org" target="_blank">NumPy-Discussion@scipy.org</a><br>
<a href="https://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">https://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br></blockquote>
</div>
</div>

<br>_______________________________________________<br>
NumPy-Discussion mailing list<br>
<a href="mailto:NumPy-Discussion@scipy.org">NumPy-Discussion@scipy.org</a><br>
<a href="https://mail.scipy.org/mailman/listinfo/numpy-discussion" rel="noreferrer" target="_blank">https://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">(\__/)<br>( O.o)<br>( > <) Este es Conejo. Copia a Conejo en tu firma y ayúdale en sus planes de dominación mundial.</div>
</div></div>