2011-10-17 191 views
6

Tengo un conjunto de datos que estoy cargando como un gráfico para varios marcos de tiempo y tratando de calcular las relaciones entre ellos.¿Cómo se elimina un nodo en networkx?

Quiero eliminar todos los nodos que no tienen bordes, pero no estoy seguro del comando para eliminar o eliminar nodos. ¿Alguna idea de cómo hacer esto?

Respuesta

12
import networkx as nx 
import matplotlib.pyplot as plt 

G=nx.Graph() 
G.add_edges_from([('A','B'),('A','C'),('B','D'),('C','D')]) 
nx.draw(G) 
plt.show() 

enter image description here

G.remove_node('B') 
nx.draw(G) 
plt.show() 

enter image description here

Para eliminar múltiples nodos, también existe el método Graph.remove_nodes_from().

3

Documentation lo cubre.

Graph.remove_node (n): Remove node n.

Graph.remove_nodes_from (nodes): elimina múltiples nodos.

Por ejemplo:

In : G=networkx.Graph() 

In : G.add_nodes_from([1,2,3]) 

In : G.nodes() 
Out: [1, 2, 3] 

In : G.remove_node(2) 

In : G.nodes() 
Out: [1, 3] 
Cuestiones relacionadas