開始使用免費開始

在圖上進行查詢

現在你已經了解此圖的一些基本性質,並練習用 NetworkX 的繪圖功能來視覺化它的元件,接下來要看看如何對它進行節點與邊的查詢。具體來說,你要找出「感興趣的節點」與「感興趣的邊」。為此,你會使用 Eric 在影片中介紹過的 .nodes().edges() 方法。.nodes() 會回傳節點檢視的可疊代物件;.edges() 會回傳邊檢視的可疊代物件,其中每個 tuple 代表該邊相連的節點。別忘了,在這些方法中傳入關鍵字引數 data=True,也能同時取回與節點與邊相關的中繼資料。

你會撰寫串列生成式,一行就有效建立這些查詢。若需要複習串列生成式,請參考 DataCamp 的 Python Data Science Toolbox 課程之[Part 2](https://www.datacamp.com/courses/python-data-science-toolbox-part-2)。以下是串列生成式的範本:

[ 輸出運算式 for 迭代變數 in 可疊代物件 if 謂詞運算式 ]

你需要填入的是「可疊代物件」與「謂詞運算式」。在送出解答前,歡迎先在 IPython Shell 中探索此圖,做出原型後再提交。

本練習屬於課程

Python 網路分析入門

檢視課程

練習說明

  • 使用串列生成式,從圖 T 取得一個「節點清單」,其 'occupation' 標籤為 'scientist'
    • 輸出運算式 n 以及 迭代變數 nd 已為你提供。你的任務是填入 可疊代物件條件運算式
    • 使用 T.nodes() 方法來存取節點,並務必指定 data=True 以取得節點的中繼資料。
    • 迭代變數 d 是字典。此處關注的鍵為 'occupation',對應的值為 'scientist'
  • 使用串列生成式,從圖 T 取得一個「邊的清單」,其形成時間已至少 6 年,也就是在 2010-01-01 之前。
    • 你的任務同樣是填入 可疊代物件條件運算式
    • 使用 T.edges() 方法來存取邊,並同樣取得邊的中繼資料。
    • 日期以 datetime.date 物件儲存在中繼資料字典 d'date' 鍵下。例如,要表達 2009-01-01,字典值會是 date(2009, 1, 1)

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Use a list comprehension to get the nodes of interest: noi
noi = [n for n, d in ____ if d['____'] == '____']

# Use a list comprehension to get the edges of interest: eoi
eoi = [(u, v) for u, v, d in ____ if ____ < ____]
編輯並執行程式碼