Hi, I get across the numpy.put[1] 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.
Fred [1] http://docs.scipy.org/doc/numpy/reference/generated/numpy.put.html On Wed, Jun 6, 2012 at 4:48 AM, John Salvatier <[email protected]> wrote: > Hello, > > 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 [30]: x = zeros(5) > > In [31]: idx = array([1,1,1,3,4]) > > In [32]: x[idx] += [2,4,8,10,30] > > In [33]: x > Out[33]: 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 > [email protected] > http://mail.scipy.org/mailman/listinfo/numpy-discussion > _______________________________________________ NumPy-Discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
