induced_subgraph#

induced_subgraph(G, nbunch)[源代码]#

返回 G 的 SubGraph 视图,仅显示 nbunch 中的节点。

图在节点集合 N 上的导出子图是一个图,其节点为 N,边为 G 中两端都在 N 中的边。

参数:
GNetworkX 图
nbunch节点、节点容器或 None(表示所有节点)
返回值:
subgraphSubGraph 视图

由节点在 G 中导出的子图的只读视图。对图 G 的更改将反映在视图中。

注意

要创建具有自己的节点、边和属性副本的可变子图,请使用 subgraph.copy()Graph(subgraph)

要将图原地缩减为子图,可以移除节点:G.remove_nodes_from(n in G if n not in set(nbunch))

如果您要计算子图的子图,可能会形成视图链,当链中有大约 15 个视图时,这会非常慢。如果它们都是导出子图,您可以通过将它们都作为原始图的子图来缩短链。当 G 是子图时,图类方法 G.subgraph 会这样做。相比之下,此函数允许您根据需要选择是否构建链。返回的子图是 G 的一个视图。

示例

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