НачатьНачать бесплатно

Фильтрация рёбер по времени

Теперь вы попрактикуетесь в фильтрации графа с помощью условия, применяемого к рёбрам. Это поможет вам уверенно работать с генераторами списков, содержащими условия.

Для справки: объекты datetime можно импортировать из модуля datetime. В метаданных графа есть ключ date, значением которого является объект datetime.

Это упражнение является частью курса

Средний уровень сетевого анализа на Python

Посмотреть курс

Инструкции к упражнению

  • Создайте новый граф с именем G_sub.
  • Добавьте узлы из исходного графа (вместе с метаданными) с помощью метода .add_nodes_from().
  • Добавьте рёбра с помощью генератора списка с одним условием на дату ребра: дата ребра должна быть раньше 2004-05-16. Для этого:
    • Используйте метод .add_edges_from(), передав ему генератор списка в качестве аргумента.
    • Выходное выражение генератора — (u, v, d). Переберите все рёбра графа G и проверьте, является ли d['date'] меньше datetime(2004, 5, 16).

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

import networkx as nx
from datetime import datetime

# Instantiate a new graph: G_sub
G_sub = ____

# Add nodes from the original graph
____

# Add edges using a list comprehension with one conditional on the edge dates, that the date of the edge is earlier than 2004-05-16.
G_sub.____([(____, ____, ____) for u, v, d in G.edges(data=True) if d['____'] < ____(____,____,____)])
Редактировать и запускать код