Aan de slagBegin gratis

Tijdfilter op randen

Je gaat nu oefenen met het filteren van de graaf met een voorwaarde toegepast op de randen. Dit helpt je om ervaring op te doen met list comprehensions die een voorwaarde bevatten.

Onthoud voor deze oefeningen dat je datetime-objecten kunt importeren uit de module datetime. In de graaf heeft de metadata een date-sleutel die gekoppeld is aan een datetime-object als waarde.

Deze oefening maakt deel uit van de cursus

Gemiddelde netwerkanalyse in Python

Bekijk cursus

Oefeninstructies

  • Maak een nieuwe graaf aan met de naam G_sub.
  • Voeg knooppunten toe uit de originele graaf (inclusief de knooppuntmetadata) met de methode .add_nodes_from().
  • Voeg randen toe met een list comprehension met één voorwaarde op de randdata: de datum van de rand is eerder dan 2004-05-16. Doe dit als volgt:
    • Gebruik de methode .add_edges_from() met een list comprehension als argument.
    • De uitvoerexpressie van de list comprehension is (u, v, d). Iteer over alle randen van G en controleer of d['date'] kleiner is dan datetime(2004, 5, 16).

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

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['____'] < ____(____,____,____)])
Code bewerken en uitvoeren