2
我有一個大的無向加權圖,約375,000個節點,3,400,000個邊表示爲鄰接列表(字典詞典)。Python igraph:將大圖轉換爲python-igraph的最快方法
例如作爲
{A : {B : 2, C : 4}, B : {A : 2}, C : {A : 4}}
我想這個圖形轉換成的python-的igraph圖形,隨後運行walktrap社區檢測算法
A --> (B,2), (C,4)
B --> (A,2)
C --> (A,4)
表示。我曾嘗試以下方法:
g = igraph.Graph()
for node in mygrpah.keys():
g.add_vertex(name=node) # each node is a string
for node,neighbours in mygraph.iteritems():
g.add_edges([(node,neighbour) for neighbour in neighbours.keys()])
for neighbour in neighbours.keys():
# to avoid adding edge while traversing neighbour's dictionary
del mygraph[neighbour][node]
我15萬個節點測試這對一個子圖,它在我的電腦有4GB內存和CPU i5-4200U @ 1.60GHz的×4處理器就拿〜11個小時。
- 有沒有更好的方法來執行轉換?
- 是有速度更快,並提供walktrap社區檢測算法支持任何其他圖形庫?