生成带有networkx的有向图的树

时间:2014-05-08 08:56:20

标签: python graph networkx minimum-spanning-tree subgraph

我在networkx中有一个有向图G,我想得到它的最小生成树。 我这样做:

 T = nx.algorithms.minimum_spanning_tree( G.to_undirected()  )

这是无向的,我想恢复方向,但我不知道该怎么做。 我试过了:

G[T.edges()]

这最后一行看起来非常pythonic但这不是networkx的工作方式,显然...... 有谁知道怎么做?

换句话说:如何给出(无向)边缘的有向树的子图?

1 个答案:

答案 0 :(得分:4)

您可以通过简单的理解获得出现在MST G中的T边缘:

E = set(T.edges())  # optimization
[e for e in G.edges() if e in E or reversed(e) in E]

然后,您可以从中构建新图表。