Как поддерживать только узлы в networkx-graph с 2+ исходящими ребрами или 0 исходящими ребрами?

У меня есть Directed Graph в networkx. Я хочу только сохранить те узлы, у которых есть два или более двух исходящих ребра или вообще нет исходящего края. Как это сделать?

или

Как удалить узлы, которые имеют только один исходящий ребро в графике networkx.

Ответ 1

Вы можете найти узлы в графе 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)