Networkx:获取群集中的边数

时间:2017-05-25 08:30:52

标签: python networkx

我有图表 [![网络] [1] [1] 我试着在networkx中获得簇中的边数,但是我没有找到执行此操作的函数。我应该如何计算图中簇中的边数?

1 个答案:

答案 0 :(得分:1)

网络中的群集是networkx中所谓的子图。要在图表或网络中获取子图,您可以使用networkx.connected_componentsnetworkx.connected_component_subgraphs函数。第一个返回包含节点的列表,而后一个实际返回子图。

注意:这些函数返回生成器,因此您需要将它们转换为列表才能获取图形。

示例可能如下所示:

import networkx as nx
graph = nx.Graph()
graph.add_edges_from(((1, 2), (2,3), (4, 5), (5, 6), (6, 7)))
subgraphs = list(nx.connected_component_subgraphs(graph))
for subgraph in subgraphs:
    edges = subgraph.edges()
    print(edges, "total edges: %s" % len(edges))

[[1, 2], [2, 3]] total edges: 2
[[4, 5], [5, 6], [6, 7]], total edges: 3