5

在这里对 NetworkX 来说还是有点新,但我希望能够查询 NetworkX 图以查找节点集群中的所有节点。这是我生成的示例图: 节点网络

如您所见,有节点集群。在每个集群中,每个节点都连接到每个其他节点。您可以在下面五个这样的集群的放大图中看到: 放大 5 个集群

我希望能够找出如何提取每个单独的节点集群。每个节点都以一个长名称命名(例如“A/Vietnam/2009/8/431”),我知道如何使用 NetworkX 的函数来捞出单个节点,但我不知道如何让所有节点都连接起来该集群中的节点。首选语言是 Python (2.7),我一直在使用 NetworkX 包。

谢谢大家!

4

2 回答 2

12
     import networkx as nx

     #G is the networkx graph 
     sub_graphs = nx.connected_component_subgraphs(G)

     #n gives the number of sub graphs
     n = len(sub_graphs)

     # you can now loop through all nodes in each sub graph
     for i in range(n):
         print "Subgraph:", i, "consists of ",sub_graphs[i].nodes()
于 2013-07-03T20:43:14.433 回答
0

Python 3.x 的更新:

import networkx as nx

# Identify groups of connected components (or subgraphs)
sub_graphs = nx.connected_components(G)

# Loop through all nodes in each subgraph and display them
while True:
    try:
        print(next(sub_graphs))
    except StopIteration:
        break
于 2021-11-24T22:04:24.657 回答