[Numpy-discussion] Slices from an index list

Mads Ipsen madsipsen@gmail....
Wed Apr 11 08:15:04 CDT 2012


On 11/04/2012 13:42, Warren Weckesser wrote:
>
>
> On Wed, Apr 11, 2012 at 4:28 AM, Mads Ipsen <madsipsen@gmail.com 
> <mailto:madsipsen@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.ipsen@gmail.com |
+----------------------+------------------------------+


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/numpy-discussion/attachments/20120411/ee92e29d/attachment.html 


More information about the NumPy-Discussion mailing list