1. Learn
  2. /
  3. Курси
  4. /
  5. Вступ до аналізу мереж у Python

Connected

Вправа

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

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

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

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

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

Інструкції

100 XP
  • Використайте спискове включення, щоб отримати список вузлів графа 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).