Sorry typo : a = np.ones(30) idx = np.array([2,3,2]) # there is a duplicate index of 2 a[idx] += 2 On Fri, Feb 22, 2013 at 8:35 PM, santhu kumar <mesanthu@gmail.com> wrote:
Hi all,
I dont want to run a loop for this but it should be possible using numpy "smart" ways.
a = np.ones(30) idx = np.array([2,3,2]) # there is a duplicate index of 2 a += 2
a array([ 1., 1., 3., 3., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
But if we do this : for i in range(idx.shape[0]): a[idx[i]] += 2
a array([ 1., 1., 5., 3., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
How to achieve the second result without looping?? Thanks Santhosh