ПочатиПочніть безкоштовно

Витягніть середню ступеневу центральність день за днем на частині студентів

Тут ви перевірите, чи корелює середня ступенева центральність усіх вузлів із кількістю ребер, що відображаються з часом. Сильного зв'язку може й не бути, і ви подивитеся, чи так це насправді.

Ця вправа є частиною курсу

Середній рівень Network Analysis у Python

Переглянути курс

Інструкції до вправи

  • Створіть новий граф під назвою G_sub, що містить підмножину ребер.
  • Додайте вузли з G, включно з метаданими вузлів.
  • Додайте ребра, які відповідають критеріям, використовуючи метод .add_edges_from().
  • Отримайте студентську проєкцію G_student_sub з G_sub, використовуючи функцію nx.bipartite.projected_graph().
  • Обчисліть ступеневу центральність проєкції студентів за допомогою nx.degree_centrality() (не використовуйте біпартитну версію).
  • Додайте середнє значення ступеневої центральності до списку mean_dcs. Обов'язково спочатку перетворіть dc.values() на список.
  • Натисніть "Submit Answer", щоб переглянути графік!

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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()
Редагувати та запускати код