認識 NetworkX
資料裡幾乎都有「誰跟誰有關係」:朋友、航班、蛋白質交互作用、網頁連結。要把這些關係變成可計算的物件,最常用的 Python 套件就是 NetworkX。
本站用繁體中文整理 NetworkX 最常碰到的操作與演算法,並蒐集官方研討會與優質 YouTube 教學,方便對照實作。
最必須掌握的 20%
學會下面這組觀念,就能處理大多數圖資料工作。其餘 API 再查 官方文件 即可。
-
四種圖類型
Graph、DiGraph、MultiGraph、MultiDiGraph。先決定有沒有方向、允不允許平行邊。 -
節點與邊
新增、刪除、從串列一次加入。節點可以是任何可雜湊物件(不能是
None)。 -
屬性,尤其是 weight
節點、邊、整張圖都能掛資料。最短路徑與許多演算法會讀
weight。 -
四個檢視
G.nodes、G.edges、G.adj、G.degree是持續更新的唯讀視圖,不是靜態複本。 -
三類演算法
最短路徑、中心性、連通元件。這三類就能回答「多遠、誰重要、分成幾塊」。
-
畫圖與讀寫
nx.draw()搭配 matplotlib;常見格式用 GraphML / GEXF / edgelist 進出。
建議學習順序
- 入門:安裝、圖的概念、四種圖、節點與邊、屬性。
- 操作:檢視圖、產生器、讀寫檔案。
- 分析:最短路徑、中心性、連通性與社群。
- 視覺化:用 matplotlib 把圖畫出來。
- 進階:後端加速(GraphBLAS、GPU)。
- 影音教學:邊看影片邊對照本站文章。
時間有限的話:先看 Crash Course,再讀 節點與邊 與 最短路徑。
官方學習資源
NetworkX 沒有官方 Certificate/認證課程。學習路徑以官方文件與核心開發者在 SciPy/PyCon 的教學為準。
建議搭配的影音
沒有單一官方 YouTube 頻道。最接近「原廠教學」的是 NetworkX 核心開發者在研討會的錄影,例如 SciPy 2019 Network Analysis Made Simple 與 PyCon US 2024 NetworkX is Fast Now。完整清單見 影音教學。
這套件適合什麼
NetworkX 擅長:
- 用 Python 物件當節點,邊可以帶任意資料。
- 快速試作演算法、教學、中小型網路分析。
- 與 NumPy、SciPy、pandas、matplotlib 接在一起。
它的預設實作是純 Python,圖到了數十萬~數百萬邊時會變慢。那時不要換 API,改用 後端 即可。