[Numpy-discussion] indexing with booleans without making a copy?
Ernest Adrogué
eadrogue at gmx.net
Wed Sep 8 15:21:49 EDT 2010
Hello,
I have a sorted, flat array:
In [139]: a =np.array([0,1,2,2,2,3])
Basically, I want views of the areas where there
are repeated numbers (since the array is sorted, they
will be contiguous).
But, of course, to find the numbers that are repeated
I have to use comparison operations that return
boolean arrays, so I suppose the problem is converting
the boolean array into a slice.
This is what I have come up with:
In [146]: np.flatnonzero(a==2)
Out[146]: array([2, 3, 4])
In [147]: b=np.flatnonzero(a==2)
In [148]: b.min()
Out[148]: 2
In [149]: b.max()
Out[149]: 4
In [150]: a[b.min():b.max()+1]
Out[150]: array([2, 2, 2])
If you know a more straightforward way of doing this,
I'll be glad to know...
Cheers :)
Ernest
More information about the NumPy-Discussion
mailing list