[Numpy-discussion] Incrementing with advanced indexing: why don't repeated indexes repeatedly increment?
Wed Jun 6 08:07:21 CDT 2012
I get across the numpy.put function. I'm not sure, but maybe it do
what you want. My memory are fuzy about this and they don't tell about
this in the doc of this function.
On Wed, Jun 6, 2012 at 4:48 AM, John Salvatier
> I've noticed that If you try to increment elements of an array with advanced
> indexing, repeated indexes don't get repeatedly incremented. For example:
> In : x = zeros(5)
> In : idx = array([1,1,1,3,4])
> In : x[idx] += [2,4,8,10,30]
> In : x
> Out: array([ 0., 8., 0., 10., 30.])
> I would intuitively expect the output to be array([0,14, 0,10,30]) since
> index 1 is incremented by 2+4+8=14, but instead it seems to only increment
> by 8. What is numpy actually doing here?
> The authors of Theano noticed this behavior a while ago so they python loop
> through the values in idx (this kind of calculation is necessary for
> calculating gradients), but this is a bit slow for my purposes, so I'd like
> to figure out how to get the behavior I expected, but faster.
> I'm also not sure how to navigate the numpy codebase, where would I look for
> the code responsible for this behavior?
> NumPy-Discussion mailing list
More information about the NumPy-Discussion