<div dir="ltr">Yes, I totally agree with you regarding np.sum and np.product, which is why I didn't suggest np.add.reduce, np.multiply.reduce.  I wasn't sure whether cumsum and cumprod might be on the line in your judgment.<div><br></div><div>Best,</div><div><br></div><div>Neil</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Apr 14, 2015 at 3:37 PM, Nathaniel Smith <span dir="ltr"><<a href="mailto:njs@pobox.com" target="_blank">njs@pobox.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><p dir="ltr">On Apr 14, 2015 2:48 PM, "Neil Girdhar" <<a href="mailto:mistersheik@gmail.com" target="_blank">mistersheik@gmail.com</a>> wrote:<br>
><br>
> Okay, but by the same token, why do we have cumsum?  Isn't it identical to<br>
><br>
> np.add.accumulate<br>
><br>
> — or if you're passing in multidimensional data —<br>
><br>
> np.add.accumulate(a.flatten())<br>
><br>
> ?<br>
><br>
> add.accumulate feels more generic, would make the other ufunc things more discoverable, and is self-documenting.<br>
><br>
> Similarly, cumprod is just np.multiply.accumulate.</p>
</span><p dir="ltr">Yeah, but these do have several differences than np.outer:</p>
<p dir="ltr">- they get used much more<br>
- their definitions are less obviously broken (cumsum has no obvious definition for an n-d array so you have to pick one; outer does have an obvious definition and np.outer got it wrong)<br>
- they're more familiar from other systems (R, MATLAB)<br>
- they allow for special dispatch rules (e.g. np.sum(a) will try calling a.sum() before it tries coercing a to an ndarray, so e.g. on <a href="http://np.ma" target="_blank">np.ma</a> objects np.sum works and np.add.accumulate doesn't. Eventually this will perhaps be obviated by __numpy_ufunc__, but that is still some ways off.)</p>
<p dir="ltr">So the situation is much less clear cut.</p><span class="HOEnZb"><font color="#888888">
<p dir="ltr">-n</p>
</font></span><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><br></div>