Обчислення проєкції
Час спробувати обчислити проєкцію біпарного графа на вузли однієї з його частин. Це допоможе вам попрактикуватися у перетворенні між біпартитною версією графа та його уніпартитними проєкціями. Згадайте з відео: «проєкція» графа на одну з його частин — це зв'язність вузлів у цій частині за умови наявності зв'язків із вузлами в іншій частині. Конкретніше, це можна уявити як «зв'язність клієнтів на основі спільних покупок».
Щоб вам було легше розпочати, підказка щодо включень до списку. Включення до списку можуть містити умови, тож якщо ви хочете відфільтрувати граф за певним типом вузла, можна зробити так: [n for n, d in G.nodes(data=True) if d['key'] == 'some_value'].
Ця вправа є частиною курсу
Середній рівень Network Analysis у Python
Інструкції до вправи
- Підготуйте список вузлів
people, використавши включення до списку. Якщо ключове слово'bipartite'вузлаnуGдорівнює'people', тоді цей вузол має бути в списку. - Підготуйте список вузлів
clubs, ітеруючись вузлами G, включно з метаданими. Тут зверніть увагу: потрібно перевірити, чи ключове слово'bipartite'у словнику метаданихdдорівнює'clubs'. Примітка: це просто альтернативний спосіб створення списку вузлів. Вам не обов'язково ітеруватися за метаданими — можна застосувати той самий підхід, що й для спискуpeople, лише перевіряючи'clubs'. Ми просимо скористатися іншим підходом, щоб ви попрактикувалися в обох. - Використайте
nx.bipartite.projected_graph()для обчислення проєкцій для people і clubs. Збережіть результати якpeopleGтаclubsG.- Ця функція приймає два аргументи: граф
Gі список вузлів.
- Ця функція приймає два аргументи: граф
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Prepare the nodelists needed for computing projections: people, clubs
# This exercise shows you two ways to do it, one with `data=True` and one without.
people = [n for n in G.nodes() if G.nodes[____]['____'] == '____']
clubs = [n for n, d in G.nodes(data=True) if d['____'] == '____']
# Compute the people and clubs projections: peopleG, clubsG
peopleG = ____
clubsG = ____