Filtro temporale sugli archi
Ora metterai in pratica il filtraggio del grafo usando una condizione applicata agli archi. Questo ti aiuterà a fare pratica e a sentirti a tuo agio con le list comprehension che contengono condizioni.
Per aiutarti negli esercizi, ricorda che puoi importare oggetti datetime dal modulo datetime. Nel grafo, i metadati hanno una chiave date associata a un oggetto datetime come valore.
Questo esercizio fa parte del corso
Analisi di reti intermedia in Python
Istruzioni dell'esercizio
- Istanzia un nuovo grafo chiamato
G_sub. - Aggiungi i nodi dal grafo originale (inclusi i metadati dei nodi) usando il metodo
.add_nodes_from(). - Aggiungi gli archi usando una list comprehension con una condizione sulle date degli archi, ovvero che la data dell’arco sia precedente al 2004-05-16. Per farlo:
- Usa il metodo
.add_edges_from()con una list comprehension come argomento. - L’espressione in output della list comprehension è
(u, v, d). Itera su tutti gli archi diGe verifica ched['date']sia minore didatetime(2004, 5, 16).
- Usa il metodo
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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['____'] < ____(____,____,____)])