2011-12-20 3 views
11

私はnetworkxでDirected Graphを持っています。私は、2つ以上の発信エッジを持つか、または発信エッジを全く持たないノードだけを保持したいと考えています。これはどうすればいいですか?ノードをnetworkx-graphに2つ以上の発信エッジまたは0発信エッジで維持する方法はありますか。

または

どのように私はnetworkxグラフで正確に一つの発信エッジを持つノードを削除します。

+4

アートをグラフで表示し、1つのアウトエッジを持つノードを見つけて削除すると、1つのアウトエッジを持つノードがまだ存在する新しいグラフを作成できます。その場合、あなたは何をしたいですか? – DSM

答えて

17

あなたはout_degreeメソッドを使用して1つの出力エッジを持つグラフG内のノードを見つけることができます。

outdeg = G.out_degree() 
to_remove = [n for n in outdeg if outdeg[n] == 1] 

の削除は、次のとおりです。

G.remove_nodes_from(to_remove) 

あなたが代わりに変更の新しいグラフを作成する場合は既存のグラフを作成し、サブグラフを作成します。

to_keep = [n for n in outdeg if outdeg[n] != 1] 
G.subgraph(to_keep) 
+0

これらのノードを削除した後、アウトディグリーが変更されるかどうか – user3341953

関連する問題