[Numpy-discussion] In-place fancy selection
Charles R Harris
charlesr.harris at gmail.com
Thu Mar 1 15:26:09 EST 2007
On 3/1/07, Francesc Altet <faltet at carabos.com> wrote:
>
> Hi,
>
> 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.
>
> Thanks!
I think that would be tough because of overlap between the two sides. The
permutation could be factored into cycles which would mostly avoid that, but
that is more theoretical than practical here. What is it you are trying to
do?
Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20070301/f0435e44/attachment.html>
More information about the NumPy-Discussion
mailing list