反转networkx图中的一条边

ora*_*nge 5 python graph networkx

我发现DiGraph.reverse()可以反转有向图中所有边的方向,但是有没有办法只改变特定边的方向呢?

Nic*_*sso 6

它当然可以手动完成,但 API 中没有任何内容。

$ cat edges.py; echo; python edges.py 
import networkx as nx
G=nx.DiGraph()
G.add_edge(1,2,{'weight':.5})
G.add_edge(3,4,{'weight':1.0})
attrs = G[1][2]
G.remove_edge(1,2)
G.add_edge(2,1,attrs)
print G.edges(data=True)

[(2, 1, {'weight': 0.5}), (3, 4, {'weight': 1.0})]
$ 
Run Code Online (Sandbox Code Playgroud)

  • 我没有看到一个。据推测,在有向图中,这不被视为对边的修改,因为在另一个方向上可能已经存在边。我不确定 API 是否包含(甚至应该包含)这样的更高级别的功能,尽管反向函数的存在肯定是一个挑逗。 (2认同)