您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python中对数字进行分组/聚类

在Python中对数字进行分组/聚类

有许多方法可以进行聚类分析。一种简单的方法是查看连续数据元素之间的间隙大小:

def cluster(data, maxgap):
    '''Arrange data into groups where successive elements
       differ by no more than *maxgaP*

        >>> cluster([1, 6, 9, 100, 102, 105, 109, 134, 139], maxgap=10)
        [[1, 6, 9], [100, 102, 105, 109], [134, 139]]

        >>> cluster([1, 6, 9, 99, 100, 102, 105, 134, 139, 141], maxgap=10)
        [[1, 6, 9], [99, 100, 102, 105], [134, 139, 141]]

    '''
    data.sort()
    groups = [[data[0]]]
    for x in data[1:]:
        if abs(x - groups[-1][-1]) <= maxgap:
            groups[-1].append(x)
        else:
            groups.append([x])
    return groups

if __name__ == '__main__':
    import doctest
    print(doctest.testmod())
python 2022/1/1 18:30:13 有187人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶