Inizia subitoInizia gratis

Estrai la degree centrality media giorno per giorno sulla partizione degli studenti

Qui verificherai se la degree centrality media su tutti i nodi è correlata con il numero di archi tracciati nel tempo. Potrebbe non esserci necessariamente una forte correlazione, e darai un’occhiata per vedere se è così.

Questo esercizio fa parte del corso

Analisi di reti intermedia in Python

Visualizza corso

Istruzioni dell'esercizio

  • Istanzia un nuovo grafo chiamato G_sub contenente un sottoinsieme di archi.
  • Aggiungi i nodi da G, includendo i metadati dei nodi.
  • Aggiungi gli archi che soddisfano i criteri usando il metodo .add_edges_from().
  • Ottieni la proiezione degli studenti G_student_sub da G_sub usando la funzione nx.bipartite.projected_graph().
  • Calcola la degree centrality della proiezione degli studenti usando nx.degree_centrality() (non usare la versione bipartita).
  • Aggiungi la degree centrality media alla lista mean_dcs. Assicurati di convertire prima dc.values() in una lista.
  • Premi "Invia risposta" per visualizzare il grafico!

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

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()
Modifica ed esegui il codice