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
4

1 回答 1

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

它可能被认为是一个错误,但文档确实警告说在进行投影之前没有进行二分检查。

于 2013-02-15T19:49:08.140 回答