networkx に有向グラフがあります。2 つ以上の出力エッジがあるか、出力エッジがまったくないノードのみを保持したいと考えています。どうすればいいですか?
また
networkx グラフで出力エッジが 1 つだけのノードを削除するにはどうすればよいですか?
メソッドG
を使用して、1 つの出力エッジを持つグラフ内のノードを見つけることができます。out_degree
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)