Ekstrak rerata degree centrality per hari pada partisi mahasiswa
Di sini, Anda akan memeriksa apakah rerata degree centrality di semua node berkorelasi dengan jumlah edge yang dipetakan seiring waktu. Tidak harus ada korelasi yang kuat, dan Anda akan melihat apakah hal tersebut terjadi.
Latihan ini merupakan bagian dari kursus
Analisis Jaringan Menengah di Python
Instruksi latihan
- Buat instans grafik baru bernama
G_subyang berisi subset edge. - Tambahkan node dari
G, termasuk metadata node. - Tambahkan edge yang memenuhi kriteria, menggunakan metode
.add_edges_from(). - Dapatkan proyeksi mahasiswa
G_student_subdariG_submenggunakan fungsinx.bipartite.projected_graph(). - Hitung degree centrality dari proyeksi mahasiswa menggunakan
nx.degree_centrality()(jangan gunakan versi bipartit). - Tambahkan rerata degree centrality ke daftar
mean_dcs. Pastikan mengonversidc.values()menjadi list terlebih dahulu. - Tekan 'Kirim Jawaban' untuk melihat plot!
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
from datetime import datetime, timedelta
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
# Initialize a new list: mean_dcs
mean_dcs = []
curr_day = dayone
td = timedelta(days=2)
while curr_day < lastday:
if curr_day.day == 1:
print(curr_day)
# Instantiate a new graph containing a subset of edges: G_sub
G_sub = ____
# Add nodes from G
G_sub.____(____)
# Add in edges that fulfill the criteria
G_sub.____([(u, v, d) for u, v, d in G.edges(data=True) if d['date'] >= curr_day and d['date'] < curr_day + td])
# Get the students projection
G_student_sub = ____
# Compute the degree centrality of the students projection
dc = ____
# Append mean degree centrality to the list mean_dcs
mean_dcs.____(np.mean(____(dc.values())))
# Increment the time
curr_day += td
plt.plot(mean_dcs)
plt.xlabel('Time elapsed')
plt.ylabel('Degree centrality.')
plt.show()