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


Python NetworkX MultiDiGraph.subgraph用法及代码示例


本文简要介绍 networkx.MultiDiGraph.subgraph 的用法。

用法:

MultiDiGraph.subgraph(nodes)

返回在 nodes 上诱导的子图的 SubGraph 视图。

图的诱导子图包含 nodes 中的节点以及这些节点之间的边。

参数

nodes列表,可迭代

将迭代一次的节点容器。

返回

GSubGraph 查看

图的子图视图。图结构不能更改,但节点/边属性可以并且与原始图共享。

注意

图、边和节点属性与原始图共享。视图排除了对图形结构的更改,但对属性的更改会反映在原始图形中。

要创建具有自己的边/节点属性副本的子图,请使用:G.subgraph(nodes).copy()

要将图就地简化为子图,您可以删除节点: G.remove_nodes_from([n for n in G if n not in set(nodes)])

子图视图有时不是您想要的。在大多数情况下,如果您想做的不仅仅是查看诱导边,使用以下代码将子图创建为自己的图更有意义:

# Create a subgraph SG based on a (possibly multigraph) G
SG = G.__class__()
SG.add_nodes_from((n, G.nodes[n]) for n in largest_wcc)
if SG.is_multigraph():
    SG.add_edges_from((n, nbr, key, d)
        for n, nbrs in G.adj.items() if n in largest_wcc
        for nbr, keydict in nbrs.items() if nbr in largest_wcc
        for key, d in keydict.items())
else:
    SG.add_edges_from((n, nbr, d)
        for n, nbrs in G.adj.items() if n in largest_wcc
        for nbr, d in nbrs.items() if nbr in largest_wcc)
SG.graph.update(G.graph)

例子

>>> G = nx.path_graph(4)  # or DiGraph, MultiGraph, MultiDiGraph, etc
>>> H = G.subgraph([0, 1, 2])
>>> list(H.edges)
[(0, 1), (1, 2)]

相关用法


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