ComenzarEmpieza gratis

Extrae la centralidad de grado media día a día en la partición de estudiantes

Aquí vas a comprobar si la centralidad de grado media en todos los nodos está correlacionada con el número de aristas que se representan a lo largo del tiempo. Puede que no haya necesariamente una correlación fuerte, y lo investigarás para ver si es así.

Este ejercicio forma parte del curso

Análisis de redes intermedio en Python

Ver curso

Instrucciones del ejercicio

  • Instancia un nuevo grafo llamado G_sub que contenga un subconjunto de aristas.
  • Añade nodos desde G, incluyendo los metadatos de los nodos.
  • Añade las aristas que cumplan los criterios, usando el método .add_edges_from().
  • Obtén la proyección de estudiantes G_student_sub a partir de G_sub usando la función nx.bipartite.projected_graph().
  • Calcula la centralidad de grado de la proyección de estudiantes usando nx.degree_centrality() (no uses la versión bipartita).
  • Añade la centralidad de grado media a la lista mean_dcs. Asegúrate de convertir primero dc.values() en una lista.
  • Pulsa "Enviar respuesta" para ver la gráfica.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

from datetime import datetime, timedelta
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt

# Initialize a new list: mean_dcs
mean_dcs = []
curr_day = dayone
td = timedelta(days=2)

while curr_day < lastday:
    if curr_day.day == 1:
        print(curr_day)  
    # Instantiate a new graph containing a subset of edges: G_sub
    G_sub = ____
    # Add nodes from G
    G_sub.____(____)
    # Add in edges that fulfill the criteria
    G_sub.____([(u, v, d) for u, v, d in G.edges(data=True) if d['date'] >= curr_day and d['date'] < curr_day + td])
    
    # Get the students projection
    G_student_sub = ____
    # Compute the degree centrality of the students projection
    dc = ____
    # Append mean degree centrality to the list mean_dcs
    mean_dcs.____(np.mean(____(dc.values())))
    # Increment the time
    curr_day += td
    
plt.plot(mean_dcs)
plt.xlabel('Time elapsed')
plt.ylabel('Degree centrality.')
plt.show()
Editar y ejecutar código