如何从numpy中的数组中查找连续元素组?

我必须将一个numpy数组中的连续元素聚类。考虑以下示例


    a = [ 0, 47, 48, 49, 50, 97, 98, 99]

输出应为元组列表,如下所示


   [(0),(47, 48, 49, 50),(97, 98, 99)]

这里的区别只是一个。之间的元素。如果差异也可以指定为限制或硬编码数字,那就太好了。


非常感谢。


红颜莎娜
浏览 749回答 3
3回答

RISEBY

这是一个可能有用的功能:def group_consecutives(vals, step=1):    """Return list of consecutive lists of numbers from vals (number list)."""    run = []    result = [run]    expect = None    for v in vals:        if (v == expect) or (expect is None):            run.append(v)        else:            run = [v]            result.append(run)        expect = v + step    return result>>> group_consecutives(a)[[0], [47, 48, 49, 50], [97, 98, 99]]>>> group_consecutives(a, step=47)[[0, 47], [48], [49], [50, 97], [98], [99]]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python