web-dev-qa-db-ja.com

無向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)エッジ。

6
Haroon S.

試してみてください

G.remove_edges_from(G.selfloop_edges())
11
Joel

セルフループメソッドは、バージョン2.0でnetworkx関数を優先して、グラフメソッドとして非推奨になりました。

バージョン1.x:

G.remove_edges_from(G.selfloop_edges())

バージョン2.x:

G.remove_edges_from(nx.selfloop_edges(G))
5
Adam Rosenthal

以前のメソッドは非推奨になります:代わりにnx.selfloop_edges()を使用してください

2
Sultan1991

メソッド remove_Edge 必要なことを行います。エッジのソースと宛先が同じである場合にフィルタリングするだけです。

for u, v in G.edges_iter():
    if u == v: 
        G.remove_Edge(u,v)
0
Bonlenfum