我在networkx中有Directed Graph。我想只保留那些具有两个或两个以上的传出边缘或根本没有传出边缘的节点。我该怎么做?
或
如何删除networkx图中只有一个传出边的节点。
答案 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)