In [43]: x = zeros(5)

In [44]: idx = array([1,1,1,3,4])

In [45]: put(x,idx, [2,4,8,10,30])

In [46]: x

Out[46]: array([ 0., 8., 0., 10., 30.])

On Wed, Jun 6, 2012 at 6:07 AM, Frédéric Bastien <nouiz@nouiz.org> wrote:

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

<jsalvati@u.washington.edu> 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

> NumPy-Discussion@scipy.org

> http://mail.scipy.org/mailman/listinfo/numpy-discussion

>

_______________________________________________

NumPy-Discussion mailing list

NumPy-Discussion@scipy.org

http://mail.scipy.org/mailman/listinfo/numpy-discussion