(python)Graph tools模組學習

2022-06-14 17:54:16 字數 2069 閱讀 7949

使用之前需要先導入:

from graph_tool.all import *

1、  建立乙個圖

有向圖:g = graph()

無向圖:ug = graph(directed=false)

或ug = graph()

ug.set_directed(false)

2、 建立節點:v1 =

g.add_vertex()

解釋:建立頂點,返回頂點描述符(頂點類的乙個例項),存放在v1中。

建立多個節點:vlist=g.add_vertex(10)

解釋:建立10個頂點,返回有10個頂點的描述符迭代器。

刪除節點:g.remove_vertex(v2)

獲取頂點的索引:print(g.vertex_index[v]) 或print int(v)

解釋:每個頂點在圖中有獨一無二的編號。

遍歷頂點:for v in g.vertices():

print(v)

獲得頂點描述符: v= g.vertex(8)

解釋:通過編號獲得頂點描述符。

查詢點的出度:print(v1.out_degree())

入度:print(v1.in_degree())

遍歷每個頂點的出入邊及出入鄰接節點:

for v in

g.vertices():

print

'vertex%d\'s out_edges

'%g.vertex_index[v]

for e in

v.out_edges():

print

eprint

'vertex%d\'sout_neighbours

'%g.vertex_index[v]

for w in

v.out_neighbours():

print w

3、 建立邊:e = g.add_edge(v1, v2)

解釋:建立邊,返回邊描述符(邊類的乙個例項)

刪除邊:g.remove_edge(e)

獲取邊的索引:print(g.edge_index[e])

通過索引獲取邊描述符: e=g.edge(2,3)

遍歷邊:for e in e.edges():

print(e)

查詢邊的源頂點,目標頂點:print(e.source(),e.target())

4、 輸出到.pdf檔案:

graph_draw(g,vertex_text=g.vertex_index,vertex_font_size=18,output_size=(200,200),

output="8-nodes.pdf")

5、屬性對映:將額外的資訊新增到頂點或邊上

建立新的頂點對映,引數為型別

值'vertex1'通過頂點描述符g.vertex(10)來訪問。

vprop_string = self.g.new_vertex_property("

string")

vprop_string [g.vertex(10)] = '

vertex1

'

為邊新增屬性:

eprop=g.new_edge_property("

string")

g.edge_properties[

"sometime

"]=eprop

g.list_properties()

輸出》sometime (edge) (type:string)

內部屬性對映:任何被建立的屬性對映都可以被內建到圖中,通過在圖的類字典屬性中包含它們,這樣屬性對映就可以和圖一起被儲存。

記錄幾個**:

Pyython subprocess模組學習總結

從python 2.4開始,python引入subprocess模組來管理子程序,以取代一些舊模組的方法 如 os.system os.spawn os.popen popen2.commands.不但可以呼叫外部的命令作為子程序,而且可以連線到子程序的input output error管道,獲取...

Python subprocess模組的學習

1 用來生成子程序,並可以通過管道連線他們的輸入 輸出 錯誤,以及獲得他們的返回值。2 subprocess用來替換多個舊模組和函式 os.system 結果輸出到螢幕 os.spawn os.popen 結果儲存在記憶體中,用read 方法可讀取 popen2.commands.備註 執行pyth...

學驅動從模組開始

通用的makefile模板 ifeq kernelrelease kerneldir home lht kernel2.6 linux 2.6.14 kerneldir lib modules shell uname r build pwd shell pwd modules make c kern...