Subgraphs II
ในแบบฝึกหัดก่อนหน้า เราให้รายการโหนดที่ต้องการดึงโหนดเพื่อนบ้านมาให้แล้ว
มาลองทำแบบฝึกหัดอีกข้อ ซึ่งคราวนี้จะให้ดึงโหนดที่มี metadata ตามเงื่อนไขที่กำหนดพร้อมกับโหนดเพื่อนบ้านของโหนดเหล่านั้น แบบฝึกหัดนี้จะเชื่อมโยงกับสิ่งที่เรียนรู้เกี่ยวกับการใช้ list comprehension เพื่อค้นหาโหนด และยังช่วยฝึกทักษะการนำฟังก์ชันที่เคยเขียนไว้มาประกอบใช้งานร่วมกันด้วย
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์เครือข่ายเบื้องต้นด้วย Python
คำแนะนำการฝึกหัด
- ใช้ list comprehension ดึงโหนดที่มี metadata
'occupation'เท่ากับ'celebrity'พร้อมกับโหนดเพื่อนบ้านของโหนดเหล่านั้น:- output expression ของ list comprehension คือ
nและมี iterator variable สองตัว ได้แก่nและdโดย iterable คือรายการโหนดของT(รวม metadata ซึ่งระบุได้ด้วยdata=True) และเงื่อนไขคือ key'occupation'ใน dictionary metadatadมีค่าเท่ากับ'celebrity'
- output expression ของ list comprehension คือ
- นำโหนดเหล่านั้นมาสร้างเป็น subgraph ใหม่ชื่อ
T_subโดย:- วนซ้ำผ่านโหนดแต่ละโหนด คำนวณโหนดเพื่อนบ้าน แล้วเพิ่มเข้าไปในเซต
nodesetด้วยเมธอด.union()(ส่วนนี้ได้เตรียมโค้ดไว้ให้แล้ว) - ใช้
nodesetร่วมกับเมธอดT.subgraph()เพื่อคำนวณT_sub
- วนซ้ำผ่านโหนดแต่ละโหนด คำนวณโหนดเพื่อนบ้าน แล้วเพิ่มเข้าไปในเซต
- วาด
T_subบนหน้าจอ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Extract the nodes of interest: nodes
nodes = [n for n, d in ____ if ____ == ____]
# Create the set of nodes: nodeset
nodeset = set(nodes)
# Iterate over nodes
for n in ____:
# Compute the neighbors of n: nbrs
nbrs = ____
# Compute the union of nodeset and nbrs: nodeset
nodeset = nodeset.union(nbrs)
# Compute the subgraph using nodeset: T_sub
T_sub = ____
# Draw T_sub to the screen
____
plt.show()