Kenarlar üzerinde zaman filtresi
Şimdi, kenarlara uygulanan bir koşul kullanarak grafiği filtrelemeyi pratik yapacaksın. Bu, koşullu ifadeler içeren liste üreteçleriyle alıştırma yapmana ve onlara alışmana yardımcı olacak.
Egzersizlerde sana yardımcı olması için, datetime nesnelerini datetime modülünden içe aktarabileceğini unutma. Grafikte, üst verilerde değer olarak bir datetime nesnesiyle eşleştirilmiş bir date anahtarı bulunur.
Bu egzersiz
Python ile Orta Düzey Ağ (Network) Analizi
kursunun bir parçasıdırEgzersiz talimatları
G_subadlı yeni bir grafik oluştur..add_nodes_from()yöntemini kullanarak orijinal grafikten (düğüm üst verileri dahil) düğümleri ekle.- Kenarları, kenar tarihleri üzerine tek bir koşul içeren bir liste üreteci ile ekle; kenarın tarihi 2004-05-16'dan önce olmalı. Bunu yapmak için:
- Bağımsız değişken olarak bir liste üreteci ile
.add_edges_from()yöntemini kullan. - Liste üretecinin çıktı ifadesi
(u, v, d)olmalı.G'nin tüm kenarları üzerinde yineleme yap ved['date']değerinindatetime(2004, 5, 16)'dan küçük olup olmadığını kontrol et.
- Bağımsız değişken olarak bir liste üreteci ile
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
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['____'] < ____(____,____,____)])