У меня случайный граф, созданный с помощью Netwrokx, и я хочу удалить узлы со степенью меньше 2, за исключением двух определяемых пользователем узлов, которые имеют степень = 1. Чтобы удалить все узлы со степенью <2, я мог бы использовать Networkx <code>k-core. Но я не уверен, как сохранить 2 пользовательских узла. Например, следующий код генерирует
import networkx as nx
import matplotlib.pyplot as plt
# fig 1
G = nx.gnm_random_graph(n=20, m=30, seed=1)
nx.draw(G, with_labels=True, pos=nx.spring_layout(G))
plt.show()
G = nx.k_core(G, k=2)
nx.draw(G, with_labels=True, pos=nx.spring_layout(G))
plt.show()
Рисунок 1:
Figure 2:
введите описание изображения здесь
Я хотел бы попросить совета, как сохранить 2 определяемых пользователем узла: например,
retain_node_ids = [1,2]
РЕДАКТИРОВАТЬ:
Я мог бы использовать remove_nodes_from
как предложено ниже. Но если мы удалим узлы со степенью <2, мы можем получить новые узлы, которые изначально имели степень> = 2, со степенью <2. Чтобы повторять процесс до тех пор, пока не будут найдены узлы со степенью <2, используется <code>k-core.