On 11/04/2012 13:42, Warren Weckesser wrote:
On Wed, Apr 11, 2012 at 4:28 AM, Mads Ipsen <madsip...@gmail.com
<mailto:madsip...@gmail.com>> wrote:
Hi,
Suppose a have an array of indices, say
indices = [0,1,2,3,5,7,8,9,10,12,13,14]
Then the following slices
a = slice(0,4)
b = slice(4,5)
c = slice(5,9)
d = slice(9,12)
provide information about all the consecutive parts of the index
list. Given the list of indices, is there some nifty numpy
function that can generate the above slices for me (or their start
and stop values)?
Here's one way you could do it:
In [43]: indices = [0,1,2,3,5,7,8,9,10,12,13,14]
In [44]: jumps = where(diff(indices) != 1)[0] + 1
In [45]: starts = hstack((0, jumps))
In [46]: ends = hstack((jumps, len(indices)))
In [47]: slices = [slice(start, end) for start, end in zip(starts, ends)]
In [48]: slices
Out[48]: [slice(0, 4, None), slice(4, 5, None), slice(5, 9, None),
slice(9, 12, None)]
Warren
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion
Thanks - very helpful!
--
+-----------------------------------------------------+
| Mads Ipsen |
+----------------------+------------------------------+
| Gåsebæksvej 7, 4. tv | |
| DK-2500 Valby | phone: +45-29716388 |
| Denmark | email: mads.ip...@gmail.com |
+----------------------+------------------------------+
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion