有没有一种简单的方法可以修剪网络X图中断开的网络?
问题描述
我正在使用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
相关文章