是否有一种简单的方法可以修剪NetworkX图中断开连接的网络?

Ran*_*son 3 python social-networking networkx

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

Ran*_*son 6

索林是正确的.该功能connected_component_subgraphs在NetworkX中调用.

文档: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
Run Code Online (Sandbox Code Playgroud)