[Numpy-discussion] In-place fancy selection

Francesc Altet faltet@carabos....
Thu Mar 1 14:10:03 CST 2007


I don't think there is a solution for this, but perhaps anybody may
offer some idea. Given:

In [79]:a=numpy.arange(9,-1,-1)
In [80]:b=numpy.arange(10)
In [81]:numpy.random.shuffle(b)
In [82]:b
Out[82]:array([2, 6, 3, 5, 4, 9, 0, 8, 7, 1])
In [83]:a=a[b]
In [84]:a
Out[84]:array([7, 3, 6, 4, 5, 0, 9, 1, 2, 8])

is there a way to make the step 83 without having to keep 3 arrays
in-memory at the same time? This is, some way of doing fancy indexing,
but changing the elements *inplace*. The idea is to keep memory
requeriments as low as possible when a and b are large arrays.


Francesc Altet    |  Be careful about using the following code --
Carabos Coop. V.  |  I've only proven that it works, 
www.carabos.com   |  I haven't tested it. -- Donald Knuth

More information about the Numpy-discussion mailing list