復雜網絡分析庫NetworkX學習筆記入門_第1頁
復雜網絡分析庫NetworkX學習筆記入門_第2頁
復雜網絡分析庫NetworkX學習筆記入門_第3頁
復雜網絡分析庫NetworkX學習筆記入門_第4頁
復雜網絡分析庫NetworkX學習筆記入門_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、復雜網絡分析庫NetworkX 學習筆記( 1 ):入門已有 5613 次閱讀 2010-6-21 12:52 | 個人分類 :NetworkX | 系統(tǒng)分類 : 科研筆記 |關鍵詞 : 復雜網絡 ,NetworkXNetworkX 是一個用 Python 語言開發(fā)的圖論與復雜網絡建模工具,內置了常用的圖與復雜網絡分析算法,可以方便的進行復雜網絡數據分析、仿真建模等工作。我已經用了它一段時間了,感覺還不錯(除了速度有點慢),下面介紹我的一些使用經驗,與大家分享。一、 NetworkX 及 Python 開發(fā)環(huán)境的安裝首先到下載,到下載。如果要用 Networkx 的制圖功能,還要去下載 mat

2、plotlib和 numpy,地址分別在和。注意都要用 Python2.6 版本的。上邊四個包中, pywin32 、matplotlib和 numpy是 exe 文件,按提示一路 next ,比較容易安裝。而 NetworkX 是個 egg 文件,安裝稍微麻煩,需要用 easyinstall 安裝。具體方法:啟動 DOS控制臺(在“運行”里輸入cmd),輸入,回車后會自動執(zhí)行安裝。注意我是把放到了 C 盤根目錄,讀者在安裝時應該具體根據情況修改路徑。安裝完成后,啟動“開始 -程序 - ActiveState ActivePython 2.6(32-bit) -PythonWin Editor

3、”,在 shell中輸入:import networkx as nxprint nx如果能輸出:<module 'networkx' fromx_init_.pyc'>說明 Networkx 已經安裝好了,可以正常調用。關于 Python 語言,如果沒有接觸過可以找一本 Python 的語法書來看看(推薦 Python 精要參考 ( 第二版 ) ,網上有電子版)。這個語言很簡單易學,只要有點編程基礎,幾天就可以學會它,然后就可以自如的運用它調用 NetworkX 了。二、建立圖或網絡1、無向圖在 PythonWin 的 Shell 里輸入:import ne

4、tworkx asnx# 導入 NetworkX 包,為了少打幾個字母,將其重命名為nxG =nx.Graph()# 建立一個空的無向圖GG.add_node(1)# 添加一個節(jié)點 1G.add_edge(2,3)# 添加一條邊 2-3 (隱含著添加了兩個節(jié)點 2、3)G.add_edge(3,2)# 對于無向圖,邊 3-2 與邊 2-3 被認為是一條邊printG.nodes()# 輸出全部的節(jié)點:1, 2, 3printG.edges()# 輸出全部的邊: (2, 3)printG.number_of_edges()# 輸出邊的數量: 1這樣就可以建立一個簡單的無向圖了。如果你的數據是存在

5、文件里的,可以循環(huán)從文件中讀取節(jié)點和邊添加到 G中。2、有向圖有向圖的建立方式和無向圖基本類似,只是在上述代碼的第二行, 將 G =nx.Graph()改為 G = nx.DiGraph()。需要注意的是,此時再添加邊3-2 與邊 2-3 ,則被認為是兩條不同的邊(可以試著運行上述代碼,自己查看結果)。同時,有向圖和無向圖是可以相互轉化的,分別用到Graph.to_undirected()和 Graph.to_directed()兩個方法。3、加權圖(網絡)有向圖和無向圖都可以給邊賦予權重,用到的方法是add_weighted_edges_from ,它接受 1 個或多個三元組 u,v,w作為

6、參數,其中 u 是起點, v 是終點, w是權重。例如:G.add_weighted_edges_from(0,1,3.0),(1,2,7.5)添加 0-1 和 1-2 兩條邊,權重分別是3.0 和 7.5 。如果想讀取權重, 可以使用 get_edge_data 方法,它接受兩個參數 u 和v,即邊的起訖點。例如:printG.get_edge_data(1,2)# 輸出'weight':7.5,這是一個字典結構,可以查看python語法了解它的用法。三、調用圖算法NetworkX 提供了常用的圖論經典算法,例如DFS、BFS、最短路、最小生成樹、最大流等等,非常豐富,如果不做復雜網絡,只作圖論方面的工作,也可以應用NetworkX 作為基本的開發(fā)包。具體的算法調用方法我就不一一介紹了,可以瀏覽NX的在線手冊,對每個算法都提供了詳細的幫助文檔和示例。下面只給出一個最短路算法的例子:path=nx.all_pairs_shortest_path(G)# 調用多源最短路徑算法,計算圖G所有節(jié)點間的最短路徑printpath02# 輸出節(jié)點 0、2 之間的最短路徑序列: 0,1,2四、小結作為 NetworkX 學習筆記的第一部分, 今天先簡單介紹下Networ

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論