Фильтрация рёбер по времени
Теперь вы попрактикуетесь в фильтрации графа с помощью условия, применяемого к рёбрам. Это поможет вам уверенно работать с генераторами списков, содержащими условия.
Для справки: объекты 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['____'] < ____(____,____,____)])