NetworkX: paquete de software de Python para el estudio de redes complejas

NetworkX es un paquete de software en lenguaje Python para la creación, manipulación y estudio de la estructura, dinámica y función de redes complejas. Se utiliza para estudiar grandes redes complejas representadas en forma de gráficos con Nodes y aristas. Usando networkx podemos cargar y almacenar redes complejas. Podemos generar muchos tipos de redes aleatorias y clásicas, analizar la estructura de la red, construir modelos de red, diseñar nuevos algoritmos de red y dibujar redes. 

Instalación del paquete: 

pip install networkx

Creación de Nodes

Agregue un Node a la vez: 

 G.add_node(1)

Agregue una lista de Nodes: 

 G.add_nodes_from([2,3])

Vamos a crear Nodes en el gráfico G. Después de agregar los Nodes 1, 2, 3, 4, 7, 9 

Creating Nodes

Creación de bordes:

Agregar un borde a la vez: 

G.add_edge(1,2)
G.add_edge(3,1)
G.add_edge(2,4)
G.add_edge(4,1)
G.add_edge(9,1)

Agregar una lista de bordes: 

G.add_edges_from([(1,2),(1,3)])

Después de agregar los bordes (1,2), (3,1), (2,4), (4,1), (9,1), (1,7), (2,9) 

Creating Edges

Eliminación de Nodes y bordes:

Uno puede demoler el gráfico usando cualquiera de estas funciones: 

Graph.remove_node(), Graph.remove_nodes_from(),
Graph.remove_edge() and Graph.remove_edges_from()

Después de eliminar el Node 3 

Removing Nodes and Edge

Después de quitar el borde (1,2) 

After removing edge (1,2)  

Python3

# Python program to create an undirected
# graph and add nodes and edges to a graph
 
# To import package
import networkx
  
# To create an empty undirected graph
G = networkx.Graph()
  
# To add a node
G.add_node(1)
G.add_node(2)
G.add_node(3)
G.add_node(4)
G.add_node(7)
G.add_node(9)
  
# To add an edge
# Note graph is undirected
# Hence order of nodes in edge doesn't matter
G.add_edge(1,2)
G.add_edge(3,1)
G.add_edge(2,4)
G.add_edge(4,1)
G.add_edge(9,1)
G.add_edge(1,7)
G.add_edge(2,9)
  
# To get all the nodes of a graph
node_list = G.nodes()
print("#1")
print(node_list)
  
# To get all the edges of a graph
edge_list = G.edges()
print("#2")
print(edge_list)
  
# To remove a node of a graph
G.remove_node(3)
node_list = G.nodes()
print("#3")
print(node_list)
  
# To remove an edge of a graph
G.remove_edge(1,2)
edge_list = G.edges()
print("#4")
print(edge_list)
  
# To find number of nodes
n = G.number_of_nodes()
print("#5")
print(n)
  
# To find number of edges
m = G.number_of_edges()
print("#6")
print(m)
  
# To find degree of a node
# d will store degree of node 2
d = G.degree(2)
print("#7")
print(d)
 
# To find all the neighbor of a node
neighbor_list = G.neighbors(2)
print("#8")
print(neighbor_list)
 
#To delete all the nodes and edges
G.clear()

Producción: 

#1
[1, 2, 3, 4, 7, 9]
#2
[(1, 9), (1, 2), (1, 3), (1, 4), (1, 7), (2, 4), (2, 9)]
#3
[1, 2, 4, 7, 9]
#4
[(1, 9), (1, 4), (1, 7), (2, 4), (2, 9)]
#5
5
#6
5
#7
2
#8
[4, 9]

En la próxima publicación, discutiremos cómo crear gráficos ponderados, gráficos dirigidos, gráficos múltiples. Cómo dibujar gráficos. En publicaciones posteriores, veremos cómo usar funciones integradas como la búsqueda en profundidad, también conocida como dfs, la búsqueda en amplitud, también conocida como BFS, el algoritmo de ruta más corta de dijkstra. 

Este artículo es una contribución de Pratik Chhajer . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *