如何只保留networkx-graph中的节点有2个以上的输出边或0个输出边?

时间:2011-12-20 14:09:54

标签: python networkx

我在networkx中有Directed Graph。我想只保留那些具有两个或两个以上的传出边缘或根本没有传出边缘的节点。我该怎么做?

如何删除networkx图中只有一个传出边的节点。

1 个答案:

答案 0 :(得分:19)

您可以使用G方法找到图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)