2017-05-25 211 views
-2

我有圖 [![network] [1]] [1] 我嘗試獲取networkx中簇的邊數,但我沒有找到一個功能來做到這一點。我應該如何計算圖中簇的邊數?在networkxNetworkx:獲取邊緣的數量,在羣集中

+0

我們能猜出你的密碼? *如果是這樣,我們就賣你的代碼。* – SteveFest

+0

修復語法和使用情況,以便問題是更清楚地以英語爲母語。我認爲這個問題即使編輯也不太清楚,但給出了答案,顯然這足以得到一個高質量的答案。另外,重點是詢問如何找到邊緣,而不是尋找一種更符合計算器慣例的工具。 –

回答

1

集羣網絡是所謂的子圖。爲了獲得在圖形或網絡子圖,則可以使用networkx.connected_componentsnetworkx.connected_component_subgraphs功能。第一個返回帶有節點的列表,而後一個實際返回子圖。

注意:這些函數返回生成器,因此您需要將它們轉換爲列表才能獲取圖形。

一個例子可能是這樣的:

import networkx as nx 
graph = nx.Graph() 
graph.add_edges_from(((1, 2), (2,3), (4, 5), (5, 6), (6, 7))) 
subgraphs = list(nx.connected_component_subgraphs(graph)) 
for subgraph in subgraphs: 
    edges = subgraph.edges() 
    print(edges, "total edges: %s" % len(edges)) 

[[1, 2], [2, 3]] total edges: 2 
[[4, 5], [5, 6], [6, 7]], total edges: 3 
+0

圖中有一些集羣。我需要邊數,包括在圖形 –

+0

你的意思是,你有你的網絡中分離出來的子圖? –

+0

是的。而且我需要在這個子 –