从无向networkx图中删除自环
我使用,从节点列表中创建了一个图表networkx
。它具有自我循环。如何删除它们?以下是示例:
import networkx as NXG=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