Kom igångKom igång gratis

Beräkna den genomsnittliga graden av centralitet dag för dag i studentpartitionen

Här ska du undersöka om den genomsnittliga graden av centralitet över alla noder korrelerar med antalet kanter som ritas ut över tid. Det finns inte nödvändigtvis ett starkt samband, och du får möjlighet att kontrollera om så är fallet.

Den här övningen är en del av kursen

Nätverksanalys i Python – fortsättningskurs

Visa kurs

Övningsinstruktioner

  • Skapa en ny graf kallad G_sub som innehåller en delmängd av kanter.
  • Lägg till noder från G, inklusive nodernas metadata.
  • Lägg till kanter som uppfyller villkoren med metoden .add_edges_from().
  • Hämta studentprojektionen G_student_sub från G_sub med funktionen nx.bipartite.projected_graph().
  • Beräkna graden av centralitet för studentprojektionen med nx.degree_centrality() (använd inte bipartitversionen).
  • Lägg till den genomsnittliga graden av centralitet i listan mean_dcs. Se till att konvertera dc.values() till en lista först.
  • Klicka på 'Skicka in svar' för att visa diagrammet!

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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()
Redigera och kör kod