二分投影中的节点数比节点集多

时间:2013-02-15 15:16:15

标签: python graph networkx

我正在将一个图表投影到其中一个节点集上,但结果投影的节点数比原始节点集多,奇怪的是,这个“额外”节点只是一个与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

1 个答案:

答案 0 :(得分:0)

对于您的节点集,您的图表可能不是二分图, e.g。

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

这可能被视为一个错误,但文档确实警告在进行投影之前不会进行二分检查。