Filtrowanie krawędzi według czasu
Przećwiczysz teraz filtrowanie grafu za pomocą warunku zastosowanego do krawędzi. Pomoże ci to nabrać wprawy w tworzeniu wyrażeń listowych z warunkami.
Pamiętaj, że obiekty datetime możesz importować z modułu datetime. W grafie metadane zawierają klucz date, którego wartością jest obiekt datetime.
To ćwiczenie jest częścią kursu
Analiza sieci w Pythonie – poziom średniozaawansowany
Instrukcje do ćwiczenia
- Utwórz nowy graf o nazwie
G_sub. - Dodaj węzły z oryginalnego grafu (wraz z ich metadanymi), używając metody
.add_nodes_from(). - Dodaj krawędzie za pomocą wyrażenia listowego z jednym warunkiem dotyczącym dat krawędzi – data krawędzi musi być wcześniejsza niż 2004-05-16. W tym celu:
- Użyj metody
.add_edges_from()z wyrażeniem listowym jako argumentem. - Wyrażenie wyjściowe wyrażenia listowego to
(u, v, d). Iteruj po wszystkich krawędziach grafuGi sprawdzaj, czyd['date']jest mniejsze niżdatetime(2004, 5, 16).
- Użyj metody
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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['____'] < ____(____,____,____)])