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

Запити до графа

Тепер, коли ви знаєте базові властивості графа та попрактикувалися у візуалізації його компонентів за допомогою інструментів відмальовування NetworkX, час дослідити, як можна робити запити до графа щодо вузлів і ребер. Зокрема, ви шукатимете «цікаві вузли» та «цікаві ребра». Для цього ви використаєте методи .nodes() і .edges(), які Ерік розглядав у відео. Метод .nodes() повертає ітерований об'єкт Node view, а .edges() — ітерований об'єкт edge view, де кожен кортеж показує вузли, що утворюють відповідне ребро. Нагадаємо, що передавання іменованого аргументу data=True у цих методах також повертає відповідні метадані, пов'язані з вузлами та ребрами.

Ви напишете спискові включення, щоб ефективно будувати такі запити в один рядок. Якщо потрібно освіжити знання про спискові включення, перегляньте Частину 2 курсу DataCamp Python Data Science Toolbox. Ось шаблон спискового включення:

[ вираз результату for змінна-ітератор in ітерований if логічний вираз ].

Вам потрібно заповнити поля _iterable_ та _predicate expression_. За потреби спочатку спробуйте свій варіант, дослідивши граф в оболонці IPython, а вже потім надсилайте розв'язок.

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

Вступ до аналізу мереж у Python

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

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

  • Використайте спискове включення, щоб отримати список вузлів графа T, у яких мітка 'occupation' дорівнює 'scientist'.
    • Вираз результату n уже задано, як і змінні-ітератори n та d. Ваше завдання — заповнити ітерований об'єкт і умовний вираз.
    • Скористайтеся методом .nodes() графа T, щоб отримати доступ до його вузлів, і обов'язково вкажіть data=True, щоб отримати метадані вузлів.
    • Змінна-ітератор d — це словник. Ключ, який нас цікавить, — 'occupation', а потрібне значення — 'scientist'.
  • Використайте спискове включення, щоб отримати список ребер графа T, які існують щонайменше 6 років, тобто створені до 1 січня 2010 року.
    • Знову ж, ваше завдання — заповнити ітерований об'єкт і умовний вираз.
    • Використайте метод .edges() графа T, щоб отримати доступ до його ребер. Також обов'язково отримайте метадані ребер.
    • Дати зберігаються як об'єкти datetime.date у словнику метаданих d під ключем 'date'. Наприклад, щоб звернутися до дати 1 січня 2009 року, значенням словника буде date(2009, 1, 1).

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

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

# Use a list comprehension to get the nodes of interest: noi
noi = [n for n, d in ____ if d['____'] == '____']

# Use a list comprehension to get the edges of interest: eoi
eoi = [(u, v) for u, v, d in ____ if ____ < ____]
Редагувати та запускати код