Filtrare temporală pe muchii
Acum vei exersa filtrarea grafului folosind o condiție aplicată pe muchii. Acest exercițiu te va ajuta să te familiarizezi cu list comprehension-urile care conțin condiții.
Ca ajutor, reține că poți importa obiecte datetime din modulul datetime. Pe graf, metadatele conțin cheia date, asociată cu un obiect datetime ca valoare.
Acest exercițiu face parte din cursul
Analiză intermediară a rețelelor în Python
Instrucțiuni pentru exercițiu
- Instanțiază un graf nou numit
G_sub. - Adaugă nodurile din graful original (inclusiv metadatele lor) folosind metoda
.add_nodes_from(). - Adaugă muchiile folosind un list comprehension cu o condiție pe datele muchiilor: data muchiei trebuie să fie anterioară datei 2004-05-16. Pentru aceasta:
- Folosește metoda
.add_edges_from()cu un list comprehension ca argument. - Expresia de ieșire a list comprehension-ului este
(u, v, d). Iterează peste toate muchiile luiGși verifică dacăd['date']este mai mic decâtdatetime(2004, 5, 16).
- Folosește metoda
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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['____'] < ____(____,____,____)])