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

Обчислення проєкції

Час спробувати обчислити проєкцію біпарного графа на вузли однієї з його частин. Це допоможе вам попрактикуватися у перетворенні між біпартитною версією графа та його уніпартитними проєкціями. Згадайте з відео: «проєкція» графа на одну з його частин — це зв'язність вузлів у цій частині за умови наявності зв'язків із вузлами в іншій частині. Конкретніше, це можна уявити як «зв'язність клієнтів на основі спільних покупок».

Щоб вам було легше розпочати, підказка щодо включень до списку. Включення до списку можуть містити умови, тож якщо ви хочете відфільтрувати граф за певним типом вузла, можна зробити так: [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 = ____
Редагувати та запускати код