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

กรองกราฟตามเวลาบน edge

ในแบบฝึกหัดนี้จะได้ฝึกกรองกราฟโดยใช้เงื่อนไขที่นำไปใช้กับ edge ซึ่งจะช่วยให้คุ้นเคยกับการเขียน list comprehension ที่มีเงื่อนไขมากขึ้น

เพื่อความสะดวก ขอให้จำไว้ว่าสามารถ import ออบเจกต์ datetime จากโมดูล datetime ได้ และใน metadata ของกราฟจะมี key ชื่อ date ที่จับคู่กับออบเจกต์ datetime เป็นค่า

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

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

ดูคอร์ส

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

  • สร้างกราฟใหม่ชื่อ G_sub
  • เพิ่มโหนดจากกราฟต้นฉบับ (รวมถึง metadata ของโหนด) โดยใช้เมธอด .add_nodes_from()
  • เพิ่ม edge โดยใช้ list comprehension ที่มีเงื่อนไขบนวันที่ของ edge ว่าวันที่ของ edge ต้องเก่ากว่า 2004-05-16 โดยทำดังนี้:
    • ใช้เมธอด .add_edges_from() โดยส่ง list comprehension เป็นอาร์กิวเมนต์
    • output expression ของ list comprehension คือ (u, v, d) ให้วนซ้ำ edge ทั้งหมดใน G และตรวจสอบว่า d['date'] น้อยกว่า datetime(2004, 5, 16) หรือไม่

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

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

import networkx as nx
from datetime import datetime

# Instantiate a new graph: G_sub
G_sub = ____

# Add nodes from the original graph
____

# Add edges using a list comprehension with one conditional on the edge dates, that the date of the edge is earlier than 2004-05-16.
G_sub.____([(____, ____, ____) for u, v, d in G.edges(data=True) if d['____'] < ____(____,____,____)])
แก้ไขและรันโค้ด