当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NetworkX projected_graph用法及代码示例


本文简要介绍 networkx.algorithms.bipartite.projection.projected_graph 的用法。

用法:

projected_graph(B, nodes, multigraph=False)

返回 B 到其节点集之一的投影。

返回图 G,它是二分图 B 在指定节点上的投影。如果它们在 B 中有共同的邻居,它们将保留它们的属性并在 G 中连接。

参数

BNetworkX 图

输入图应该是二分图。

nodes列表或可迭代

要投影到的节点(“bottom” 节点)。

multigraph: bool (default=False)

如果 True 返回一个多重图,其中多条边表示多个共享邻居。它们在多重图中的边键被分配给邻居的标签。

返回

GraphNetworkX 图或多重图

投影到给定节点上的图。

注意

没有尝试验证输入图 B 是否为二分图。返回一个简单图,它是将二分图 B 投影到列表节点中给定的节点集上。如果 multigraph=True 则返回一个多重图,每个共享邻居都有一条边。

允许有向图作为输入。如果节点之间存在有向路径,则输出也将是带边的有向图。

图和节点属性(浅)复制到投影图。

有关如何在 NetworkX 中处理二分图的更多详细信息,请参阅 bipartite documentation

例子

>>> from networkx.algorithms import bipartite
>>> B = nx.path_graph(4)
>>> G = bipartite.projected_graph(B, [1, 3])
>>> list(G)
[1, 3]
>>> list(G.edges())
[(1, 3)]

如果节点 ab 通过节点 1 和 2 连接,则构建多重图会导致投影到 [ a , b ] 上的两条边:

>>> B = nx.Graph()
>>> B.add_edges_from([("a", 1), ("b", 1), ("a", 2), ("b", 2)])
>>> G = bipartite.projected_graph(B, ["a", "b"], multigraph=True)
>>> print([sorted((u, v)) for u, v in G.edges()])
[['a', 'b'], ['a', 'b']]

相关用法


注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.algorithms.bipartite.projection.projected_graph。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。