[Numpy-discussion] Array accumulation in numpy

Eraldo Pomponi eraldo.pomponi@gmail....
Tue Feb 19 09:38:52 CST 2013


Dear Tony,

I would suggest to look at this post already mentioned by Benjamin .....
maybe it fits with your needs!
http://numpy-discussion.10968.n7.nabble.com/Pre-allocate-array-td4870.html

Cheers,
Eraldo



On Tue, Feb 19, 2013 at 4:24 PM, Tony Ladd <tladd@che.ufl.edu> wrote:

> Thanks to all for a very quick response. np.bincount does what I need.
>
> Tony
>
> On 02/19/2013 10:04 AM, Benjamin Root wrote:
> >
> >
> > On Tue, Feb 19, 2013 at 10:00 AM, Tony Ladd <tladd@che.ufl.edu
> > <mailto:tladd@che.ufl.edu>> wrote:
> >
> >     I want to accumulate elements of a vector (x) to an array (f) based
> on
> >     an index list (ind).
> >
> >     For example:
> >
> >     x=[1,2,3,4,5,6]
> >     ind=[1,3,9,3,4,1]
> >     f=np.zeros(10)
> >
> >     What I want would be produced by the loop
> >
> >     for i=range(6):
> >          f[ind[i]]=f[ind[i]]+x[i]
> >
> >     The answer is f=array([ 0.,  7.,  0.,  6.,  5.,  0.,  0.,  0.,
> >      0., 3.])
> >
> >     When I try to use implicit arguments
> >
> >     f[ind]=f[ind]+x
> >
> >     I get f=array([ 0.,  6.,  0.,  4.,  5.,  0.,  0.,  0.,  0.,  3.])
> >
> >
> >     So it takes the last value of x that is pointed to by ind and adds
> >     it to
> >     f, but its the wrong answer when there are repeats of the same
> >     entry in
> >     ind (e.g. 3 or 1)
> >
> >     I realize my code is incorrect, but is there a way to make numpy
> >     accumulate without using loops? I would have thought so but I cannot
> >     find anything in the documentation.
> >
> >     Would much appreciate any help - probably a really simple question.
> >
> >     Thanks
> >
> >     Tony
> >
> >
> > I believe you are looking for the equivalent of accumarray in Matlab?
> >
> > Try this:
> >
> > http://www.scipy.org/Cookbook/AccumarrayLike
> >
> > It is a bit touchy about lists and 1-D numpy arrays, but it does the job.
> > Also, I think somebody posted an optimized version for simple sums
> > recently to this list.
> >
> > Cheers!
> > Ben Root
> >
> >
> >
> > _______________________________________________
> > NumPy-Discussion mailing list
> > NumPy-Discussion@scipy.org
> > http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
> --
> Tony Ladd
>
> Chemical Engineering Department
> University of Florida
> Gainesville, Florida 32611-6005
> USA
>
> Email: tladd-"(AT)"-che.ufl.edu
> Web    http://ladd.che.ufl.edu
>
> Tel:   (352)-392-6509
> FAX:   (352)-392-9514
>
>
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/numpy-discussion/attachments/20130219/f67ed04e/attachment.html 


More information about the NumPy-Discussion mailing list