Menghitung proyeksi
Sekarang saatnya Anda mencoba menghitung proyeksi dari sebuah graf bipartit ke node pada salah satu bagiannya. Ini akan membantu Anda berlatih mengonversi antara versi bipartit dari sebuah graf dan proyeksi unipartitnya. Ingat dari video bahwa "proyeksi" sebuah graf ke salah satu bagiannya adalah keterhubungan node pada bagian tersebut yang dikondisikan oleh koneksi ke node pada bagian lainnya. Secara lebih konkret, Anda dapat memikirkannya sebagai "keterhubungan pelanggan berdasarkan pembelian yang sama".
Untuk membantu Anda memulai, berikut petunjuk tentang list comprehension. List comprehension dapat menyertakan kondisi, sehingga jika Anda ingin memfilter graf untuk jenis node tertentu, Anda dapat melakukan: [n for n, d in G.nodes(data=True) if d['key'] == 'some_value'].
Latihan ini merupakan bagian dari kursus
Analisis Jaringan Menengah di Python
Instruksi latihan
- Siapkan nodelist
peoplemenggunakan list comprehension. Jika kata kunci'bipartite'dari sebuah nodendiGsama dengan'people', maka node tersebut harus menjadi bagian dari nodelist. - Siapkan nodelist
clubsdengan mengiterasi node-node G, termasuk metadata-nya. Di sini, perhatikan bahwa Anda harus memeriksa apakah kata kunci'bipartite'dari kamus metadatadsama dengan'clubs'. Catatan: Ini hanyalah cara alternatif untuk membuat nodelist. Anda tidak harus mengiterasi metadata—Anda dapat mengikuti pendekatan yang sama seperti saat membuat nodelistpeople, cukup memeriksa'clubs'sebagai gantinya. Kami meminta Anda menggunakan pendekatan lain di sini agar Anda berlatih keduanya. - Gunakan
nx.bipartite.projected_graph()untuk menghitung proyeksi people dan clubs. Simpan hasilnya sebagaipeopleGdanclubsG.- Fungsi ini menerima dua argumen: Graf
G, dan nodelist.
- Fungsi ini menerima dua argumen: Graf
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# Prepare the nodelists needed for computing projections: people, clubs
# This exercise shows you two ways to do it, one with `data=True` and one without.
people = [n for n in G.nodes() if G.nodes[____]['____'] == '____']
clubs = [n for n, d in G.nodes(data=True) if d['____'] == '____']
# Compute the people and clubs projections: peopleG, clubsG
peopleG = ____
clubsG = ____