有没有一种简单的方法可以修剪网络X图中断开的网络?

2022-03-31 00:00:00 python networkx social-networking

问题描述

我正在使用Python的NetworkX包为不同规模的网络计算一系列网络统计信息。我正在扫描一个独立的参数,该参数系统地修剪边缘,因此有时一个小网络会与主网络断开连接。是否有一种简单的方法来检测和删除NetworkX中那些较小的断开连接的网络?


解决方案

索林是正确的。该函数在NetworkX中称为connected_component_subgraphs

文档:http://networkx.github.io/documentation/latest/reference/generated/networkx.algorithms.components.connected.connected_component_subgraphs.html#networkx.algorithms.components.connected.connected_component_subgraphs

以下是在NetworkX图中查找最大网络的一些代码:

cur_graph = # whatever graph you're working with

if not nx.is_connected(cur_graph):
    # get a list of unconnected networks
    sub_graphs = nx.connected_component_subgraphs(cur_graph)

    main_graph = sub_graphs[0]

    # find the largest network in that list
    for sg in sub_graphs:
        if len(sg.nodes()) > len(main_graph.nodes()):
            main_graph = sg

    cur_graph = main_graph

相关文章