Mulai sekarangMulai gratis

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

Lihat Kursus

Instruksi latihan

  • Siapkan nodelist people menggunakan list comprehension. Jika kata kunci 'bipartite' dari sebuah node n di G sama dengan 'people', maka node tersebut harus menjadi bagian dari nodelist.
  • Siapkan nodelist clubs dengan mengiterasi node-node G, termasuk metadata-nya. Di sini, perhatikan bahwa Anda harus memeriksa apakah kata kunci 'bipartite' dari kamus metadata d sama dengan 'clubs'. Catatan: Ini hanyalah cara alternatif untuk membuat nodelist. Anda tidak harus mengiterasi metadata—Anda dapat mengikuti pendekatan yang sama seperti saat membuat nodelist people, 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 sebagai peopleG dan clubsG.
    • Fungsi ini menerima dua argumen: Graf G, dan nodelist.

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 = ____
Edit dan Jalankan Kode