Tidsfilter på kanter
Nu ska du öva på att filtrera grafen med ett villkor tillämpat på kanterna. Det ger dig träning i att skriva listförståelser med villkor.
Kom ihåg att du kan importera datetime-objekt från modulen datetime. I grafen finns metadatanyckeln date, som är kopplad till ett datetime-objekt som värde.
Den här övningen är en del av kursen
Nätverksanalys i Python – fortsättningskurs
Övningsinstruktioner
- Instansiera en ny graf med namnet
G_sub. - Lägg till noder från den ursprungliga grafen (inklusive nodmetadata) med metoden
.add_nodes_from(). - Lägg till kanter med en listförståelse som innehåller ett villkor på kanternas datum – datumet ska vara tidigare än 2004-05-16. Gör så här:
- Använd metoden
.add_edges_from()med en listförståelse som argument. - Ututtrycket i listförståelsen är
(u, v, d). Iterera över alla kanter iGoch kontrollera omd['date']är mindre ändatetime(2004, 5, 16).
- Använd metoden
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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['____'] < ____(____,____,____)])