Розподіл ступеневої центральності вузлів користувачів
У цій вправі та наступній ви зробите фінальний повтор матеріалу з попереднього курсу. Ваше завдання — побудувати розподіли ступеневої центральності для кожної частини вузлів у двочастковій версії мережі співпраці GitHub. Тут ви зробите це для частини 'users'. У наступній вправі ви зробите це для частини 'projects'.
Функція, яку ви писали раніше, get_nodes_from_partition(), уже завантажена для вас. Нагадаємо: «ступенева центральність» — це міра важливості вершини, а «розподіл ступеневої центральності» — це список значень ступеневої центральності для всіх вершин у графі. Кілька вправ тому, коли ви будували циркос-діаграму, ми обчислювали ступеневі центральності за вас. Тепер ви потренуєтеся робити це самостійно!
Ця вправа є частиною курсу
Середній рівень Network Analysis у Python
Інструкції до вправи
- Імпортуйте
matplotlib.pyplotякplt. - Використайте вашу функцію
get_nodes_from_partition()з попередньої вправи, щоб отримати списокuser_nodes, який відповідає вузлам'users'графаG. - За допомогою функції
nx.degree_centrality()обчисліть ступеневі центральності для кожної вершини вG. Збережіть результат у зміннійdcs. - Використайте list comprehension, щоб обчислити ступеневі центральності для кожної вершини в
user_nodes. Збережіть результат уuser_dcs.- Пам'ятайте,
dcs— це словник, де ключі — це вершини. Потрібні вершини містяться вuser_nodes. Як можна використати цю інформацію, щоб отримати ступеневі центральності вузлів користувачів? Використайтеnяк змінну-ітератор.
- Пам'ятайте,
- Побудуйте гістограму розподілу ступеневої центральності користувачів за допомогою
plt.hist()іuser_dcs.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Import matplotlib
____
# Get the 'users' nodes: user_nodes
user_nodes = ____
# Compute the degree centralities: dcs
dcs = ____
# Get the degree centralities for user_nodes: user_dcs
user_dcs = [dcs[____] for n in ____]
# Plot the degree distribution of users_dcs
plt.yscale('log')
plt.hist(____, bins=20)
plt.show()