On Wed, Apr 11, 2012 at 4:28 AM, Mads Ipsen <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