Kueri pada graf
Setelah Anda mengenal beberapa properti dasar dari graf dan berlatih menggunakan fasilitas gambar NetworkX untuk memvisualisasikan komponennya, kini saatnya mengeksplorasi cara melakukan kueri terhadap simpul dan sisi. Secara khusus, Anda akan mencari "nodes of interest" dan "edges of interest". Untuk itu, Anda akan menggunakan metode .nodes() dan .edges() yang telah dibahas Eric dalam video. Metode .nodes() mengembalikan Node view yang dapat diiterasi, sedangkan metode .edges() mengembalikan edge view yang dapat diiterasi, di mana setiap tuple menunjukkan simpul-simpul yang ada pada sisi tersebut. Ingat bahwa menyertakan argumen kata kunci data=True pada metode-metode ini juga mengambil metadata terkait dengan simpul dan sisi.
Anda akan menulis pemahaman daftar (list comprehension) untuk menyusun kueri ini secara ringkas dalam satu baris. Untuk penyegaran tentang pemahaman daftar, lihat Bagian 2 dari kursus Python Data Science Toolbox di DataCamp. Berikut resep sebuah pemahaman daftar:
[ output expression for iterator variable in iterable if predicate expression ].
Anda perlu mengisi bagian _iterable_ dan _predicate expression_. Silakan membuat prototipe jawaban dengan mengeksplorasi graf di IPython Shell sebelum mengirimkan solusi Anda.
Latihan ini adalah bagian dari kursus
Pengantar Analisis Jaringan di Python
Petunjuk latihan
- Gunakan pemahaman daftar untuk memperoleh daftar simpul (nodes) dari graf
Tyang memiliki label'occupation'bernilai'scientist'.- Output expression
ntelah disediakan, bersama iterator variablesndand. Tugas Anda adalah melengkapi bagian iterable dan conditional expression. - Gunakan metode
.nodes()dariTuntuk mengakses simpulnya, dan pastikan menyertakandata=Trueuntuk memperoleh metadata simpul. - Variabel iterator
dadalah sebuah kamus (dictionary). Kunci yang relevan di sini adalah'occupation'dan nilai yang dicari adalah'scientist'.
- Output expression
- Gunakan pemahaman daftar untuk memperoleh daftar sisi (edges) dari graf
Tyang telah terbentuk setidaknya selama 6 tahun, yaitu sebelum 1 Jan 2010.- Sekali lagi, tugas Anda adalah melengkapi bagian iterable dan conditional expression.
- Gunakan metode
.edges()dariTuntuk mengakses sisinya. Pastikan juga untuk memperoleh metadata sisi. - Tanggal disimpan sebagai objek
datetime.datedi kamus metadatad, dengan kunci'date'. Untuk mengakses tanggal 1 Jan 2009, misalnya, nilai kamusnya adalahdate(2009, 1, 1).
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Use a list comprehension to get the nodes of interest: noi
noi = [n for n, d in ____ if d['____'] == '____']
# Use a list comprehension to get the edges of interest: eoi
eoi = [(u, v) for u, v, d in ____ if ____ < ____]