从无向networkx图中删除自环

我使用,从节点列表中创建了一个图表networkx。它具有自我循环。如何删除它们?以下是示例:

import networkx as NX

G=NX.Graph()

G.add_edge(1,2)

G.add_edge(1,1)

print (G.edges())

[(1, 2), (1, 1)]

我不要(1, 1)边缘。

回答:

(以下有关networkx 1.x的说明)

如果您使用的是networkx 2.x,请尝试

G.remove_edges_from(nx.selfloop_edges(G))

如果您有一个MultiGraph(例如configuration_model产生的),则如果您使用的是2.x较旧的版本且存在一个小错误,则可能无法使用。如果是这样,并且您不想升级,则需要在删除边缘之前将其转换为列表。

G.remove_edges_from(list(nx.selfloop_edges(G)))

该错误已得到纠正https://github.com/networkx/networkx/issues/4068。


在 (当我最初回答此问题时),它是:

G.remove_edges_from(G.selfloop_edges())

以上是 从无向networkx图中删除自环 的全部内容, 来源链接: utcz.com/qa/422061.html

回到顶部