[Numpy-discussion] Fwd: Advanced selection, duplicate indices, and augmented assignment

Timothy Hochberg tim.hochberg at ieee.org
Sat Jan 6 21:53:47 CST 2007


On 1/6/07, Travis Oliphant <oliphant at ee.byu.edu> wrote:
>
> Timothy Hochberg wrote:
> >
> >
> >
> > On 1/6/07, *Robert Kern* < robert.kern at gmail.com
> > <mailto:robert.kern at gmail.com>> wrote:
> >
> >     Sean R. Lynch wrote:
> >
> >     >>>> x = zeros((3,))
> >     >>>> x[array([0, 1, 1])] += array([1, 1, 1])
> >     >>>> x
> >     > array([ 1.,  1.,  0.])
> >     >
> >     > If this worked the way I was hoping, the output would be [1 2 0]
> >     because
> >     > it would add to element 1 twice due to its duplication in the
> >     advanced
> >     > selection array.
> >     >
> >     > Is the current behavior intentional or is it an accident of
> >     > implementation?
> >
> >     It is an unavoidable consequence of the way Python interprets that
> >     code and the
> >     way numpy arrays are fundamentally implemented. See Travis
> >     Oliphant's, Tim
> >     Hochberg's and my posts in the thread "Histograms via indirect
> >     index arrays" for
> >     more details.
> >
> >
> http://projects.scipy.org/pipermail/numpy-discussion/2006-March/thread.html#6877
> >
> >
> > Do we have to revisit that thread? I seem to recall it getting kind of
> > cranky. To avoid reliving that, I will attempt dredge up the relevant
> > issue:
> >
> > "a[indx]+=b" should be the same as "a[indx]=a[indx]+b". All else
> > follow from that. If staring at that for a while doesn't enlighten
> > you, then you will have to read that thread.
> >
> > [ I suspect that in theory we could make the += form behave as you
> > expect, but that would break the identity above, which would confuse a
> > bunch of people]
> >
>
> I don't think we could make it work as he expects (and not radically
> change NumPy itself so that other operations are very different) because
> of the limitations of Python.
>
> The point was that it is too complicated to do any differently (and is
> probably impossible).


Right you are -- I was suffering a thinko -- sorry.

-tim
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://projects.scipy.org/pipermail/numpy-discussion/attachments/20070106/8ddf6af2/attachment-0001.html 


More information about the Numpy-discussion mailing list