เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

ลิสต์ของกราฟ

ในชุดแบบฝึกหัดนี้ จะได้ใช้ชุดข้อมูลการส่งข้อความในมหาวิทยาลัยเพื่อเรียนรู้วิธีกรองกราฟสำหรับการวิเคราะห์อนุกรมเวลา ในชุดข้อมูลนี้ โหนดคือนักศึกษา และ edge แทนข้อความที่ส่งจากนักศึกษาคนหนึ่งไปยังอีกคนหนึ่ง กราฟในปัจจุบันครอบคลุมการสื่อสารทั้งหมดในทุกช่วงเวลา

เริ่มต้นด้วยการวิเคราะห์กราฟที่มีเฉพาะ edge เท่านั้นที่เปลี่ยนแปลงตามเวลา

ชุดข้อมูลถูกโหลดเข้าสู่ DataFrame ชื่อ data ลองสำรวจข้อมูลใน IPython Shell ได้เลย โดยเฉพาะผลลัพธ์ของ data['sender'] และ data['recipient']

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การวิเคราะห์เครือข่ายระดับกลางใน Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้างลิสต์ว่างชื่อ Gs
  • ใช้ลูป for วนซ้ำผ่าน months โดยภายในลูปให้ทำดังนี้:
    • สร้างกราฟแบบไม่มีทิศทางใหม่ชื่อ G โดยใช้ฟังก์ชัน nx.Graph()
    • เพิ่มโหนดทั้งหมดที่เคยปรากฏเข้าสู่กราฟ โดยใช้เมธอด .add_nodes_from() บน G สองครั้ง ครั้งแรกส่ง data['sender'] เป็นอาร์กิวเมนต์ และครั้งที่สองส่ง data['recipient']
    • กรอง DataFrame ให้เหลือเฉพาะเดือนที่กำหนด ส่วนนี้ได้เตรียมไว้ให้แล้ว
    • เพิ่ม edge จาก DataFrame ที่กรองแล้ว โดยใช้เมธอด .add_edges_from() พร้อมส่ง df_filtered['sender'] และ df_filtered['recipient'] เข้าไปใน zip()
    • เพิ่ม G เข้าไปในลิสต์กราฟ Gs

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

import networkx as nx 

months = range(4, 11)

# Initialize an empty list: Gs
Gs = [] 
for month in months:
    # Instantiate a new undirected graph: G
    G = ____
    
    # Add in all nodes that have ever shown up to the graph
    ____
    ____
    
    # Filter the DataFrame so that there's only the given month
    df_filtered = data[data['month'] == month]
    
    # Add edges from filtered DataFrame
    ____
    
    # Append G to the list of graphs
    ____
    
print(len(Gs))
แก้ไขและรันโค้ด