weighted_projected_graph#

weighted_projected_graph(B, nodes, ratio=False)[source]#

返回B的一个节点集上的加权投影。

加权投影图是将二分网络B投影到指定节点上,权重表示共享邻居的数量或如果 ratio为True ,则表示实际共享邻居与可能共享邻居的比率[1]。节点保留其属性,并且在生成的图中如果它们在原始图中有一条共同的边,则它们相连。

Parameters:
BNetworkX图

输入图应该是二分图。

nodes列表或可迭代对象

要投影到的不同节点(“底部”节点)。

ratio: 布尔值(默认=False)

如果为True,边权重是实际共享邻居与最大可能共享邻居的比率(即,另一个节点集的大小)。如果为False,边权重是共享邻居的数量。

Returns:
GraphNetworkX图

一个图,是投影到给定节点上的图。

Notes

没有尝试验证输入图B是否为二分图,或输入节点是否不同。然而,如果输入节点的长度大于或等于图B中的节点,则会引发异常。如果节点不是不同的但未引发此错误,输出权重将不正确。 图和节点属性被(浅层)复制到投影图中。

参见 二分图文档 了解NetworkX中如何处理二分图的更多细节。

References

[1]

Borgatti, S.P. 和 Halgin, D. 在版。”Analyzing Affiliation Networks”。在Carrington, P. 和 Scott, J. (eds) The Sage Handbook of Social Network Analysis. Sage Publications.

Examples

>>> from networkx.algorithms import bipartite
>>> B = nx.path_graph(4)
>>> G = bipartite.weighted_projected_graph(B, [1, 3])
>>> list(G)
[1, 3]
>>> list(G.edges(data=True))
[(1, 3, {'weight': 1})]
>>> G = bipartite.weighted_projected_graph(B, [1, 3], ratio=True)
>>> list(G.edges(data=True))
[(1, 3, {'weight': 0.5})]