Introducción a las Redes Sociales usando NetworkX en Python

Requisito previo: conceptos básicos de Python 

¿Alguna vez se preguntó cómo funciona el sitio de redes sociales más popular, Facebook? ¿Cómo estamos conectados con amigos usando solo Facebook? Entonces, Facebook y otros sitios de redes sociales funcionan con una metodología llamada redes sociales. Las redes sociales se utilizan en la mayoría de los sitios de redes sociales como Facebook, Instagram y LinkedIn, etc. Tiene un efecto significativo en los especialistas en marketing para atraer clientes. Las redes sociales utilizan gráficos para crear una red. Sus Nodes son personas y los bordes son su conexión entre ellos. Dos Nodes con bordes conectados son amigos. Ahora veamos un ejemplo para entender qué son las redes sociales. 

La red de 50 alumnos en una clase 

La red de 50 personas

La biblioteca de python más importante utilizada en las redes sociales es Networkx.

RedX

NetworkX es un paquete de gráficos que se utiliza para crear y modificar diferentes tipos de gráficos. Proporciona un entorno de desarrollo rápido para proyectos colaborativos y multidisciplinarios.

Instalación:

pip install networkx

Después de iniciar python, tenemos que importar el módulo networkx:

import networkx as nx

Los tipos básicos de gráficos incorporados son:

  • Gráfico: este tipo de gráfico almacena Nodes y bordes y los bordes no están dirigidos. Puede tener bucles automáticos pero no puede tener bordes paralelos.
  • Di-Graph: este tipo de gráfico es la clase base para los gráficos dirigidos. Puede tener Nodes y aristas y las aristas son de naturaleza dirigida. Puede tener bucles automáticos pero los bordes paralelos no están permitidos en Di-Graph.
  • Gráfico múltiple: este tipo de gráfico es una clase de gráfico no dirigido que puede almacenar aristas múltiples o paralelas. También puede tener bucles automáticos. Los bordes múltiples son bordes múltiples entre 2 Nodes.
  • Multi-DiGraph: este tipo de gráfico es una clase de gráfico dirigido que puede almacenar varios bordes. También puede tener bucles automáticos. Los bordes múltiples son bordes múltiples entre 2 Nodes.

Ejemplo de creación de gráficos:

Python3

# import networkx library
import networkx as nx
 
# create an empty undirected graph
G = nx.Graph()
 
# adding edge in graph G
G.add_edge(1, 2)
G.add_edge(2, 3, weight=0.9)

Dibujo de gráfico:

El dibujo se puede hacer usando la biblioteca Matplotlib.pyplot. 

Python3

# import matplotlib.pyplot library
import matplotlib.pyplot as plt
 
# import networkx library
import networkx as nx
 
# create a cubical empty graph
G = nx.cubical_graph()
 
# plotting the graph
plt.subplot(122)
 
# draw a graph with red
# node and value edge color
nx.draw(G, pos = nx.circular_layout(G),
        node_color = 'r',
        edge_color = 'b')

Producción: 

gráfico circular

Eliminación de borde de gráfico:

Para eliminar un borde del gráfico, utilice el método remove_edge() del objeto de gráfico. 

 Sintaxis: G.remove_edge(u, v)

 Parámetros:  

  • u: primer Node
  • v: segundo Node

Retorno : Ninguno

Eliminación de Nodes gráficos:

Para eliminar un Node del gráfico, utilice el método remove_node() del objeto de gráfico.

Sintaxis: G.remove_node(u)

Parámetro: Node a eliminar

Retorno: Ninguno

Mostrar los vértices adyacentes:

Python3

# import networkx library
import netwokx as nx
 
# create an empty undirected graph
G = nx.Graph()
 
# add edge to the graph
G.add_edge('1', '2')
G.add_edge('2', '3')
 
# print the adjacent vertices
print(G.adj)

Producción: 

{'1': {'2': {}}, '2': {'1': {}, '3': {}}, '3': {'2': {}}}

Publicación traducida automáticamente

Artículo escrito por sankalpsharma424 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 *