为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

红颜莎娜 2019-12-27 11:04:13
我必须将一个numpy数组中的连续元素聚类。考虑以下示例    a = [ 0, 47, 48, 49, 50, 97, 98, 99]输出应为元组列表,如下所示   [(0),(47, 48, 49, 50),(97, 98, 99)]这里的区别只是一个。之间的元素。如果差异也可以指定为限制或硬编码数字,那就太好了。非常感谢。
查看完整描述

3 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

这是一个可能有用的功能:


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]]


查看完整回答
反对 回复 2019-12-27
  • 3 回答
  • 0 关注
  • 711 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信