2013-02-15 92 views
0

我將一個圖形投影到其中一個節點集合上,但結果投影具有比原始節點集合更多的節點,並且奇怪地說,這個「額外」節點只是一個對應於G中的節點id的數字,而不是完整的(節點,數據)元組。雙節點投影中節點數量多於節點集合

C=set(n for n,d in G.nodes(data=True) if d['bipartite']==0) 
len(C) 
>>109813 
BC=bipartite.projected_graph(G,C) 
len(BC) 
>>112570 
len(BC)-len(C) 
>>2757 

BC上的所有'額外'節點只是一個數字(對應於G中的節點ID)。這個額外的2757節點來自哪裏?我期望雙向投影圖具有與它投影到的節點集中的節點數相同數量的節點。有任何想法嗎?

可能的額外有用的信息:

len(G) 
>>117679 

回答

0

很可能你的圖不是相對於你的節點集, 例如二部

In [1]: import networkx as nx 

In [2]: from networkx import bipartite 

In [3]: G = nx.path_graph(5) # two parts, [0,2,4],[1,3] 

In [4]: bipartite.projected_graph(G,[0,2,4]).nodes() 
Out[4]: [0, 2, 4] # OK 

In [5]: bipartite.projected_graph(G,[0,2,3]).nodes() 
Out[5]: [0, 1, 2, 3, 4] # maybe not expected or correct 

這可能會被視爲一個錯誤,但該文件並警告說,沒有二部檢查是做投影之前完成。