如何从三个节点中删除循环? [网络x]
How to remove loops from three nodes? [networkx]
我有一个有数百条边的图,我想像这样删除循环:
(1, 2)
(1, 3)
(2, 3)
我试过:
G.remove_edges_from(nx.selfloop_edges(G))
不过好像不行。有什么建议吗?
自环是节点到自身的边。例如,(1,1)
或 (2,2)
是自循环。您的示例是一个简单的循环,即没有节点出现两次的闭合路径。您可以使用 simple_cycle
or find_cycle
。例如,您可以迭代地使用 find cycle:
import networkx as nx
G = nx.karate_club_graph()
print(nx.find_cycle(G, orientation="ignore"))
# [(0, 1, 'forward'), (1, 2, 'forward'), (2, 0, 'forward')]
我有一个有数百条边的图,我想像这样删除循环:
(1, 2)
(1, 3)
(2, 3)
我试过:
G.remove_edges_from(nx.selfloop_edges(G))
不过好像不行。有什么建议吗?
自环是节点到自身的边。例如,(1,1)
或 (2,2)
是自循环。您的示例是一个简单的循环,即没有节点出现两次的闭合路径。您可以使用 simple_cycle
or find_cycle
。例如,您可以迭代地使用 find cycle:
import networkx as nx
G = nx.karate_club_graph()
print(nx.find_cycle(G, orientation="ignore"))
# [(0, 1, 'forward'), (1, 2, 'forward'), (2, 0, 'forward')]