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
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to