induced_subgraph#

induced_subgraph(G, nbunch)[source]#

返回一个 G 的子图视图,仅显示 nbunch 中的节点。

在一个节点集合 N 上的图的诱导子图是具有节点 N 和来自 G 的边的图,这些边的两个端点都在 N 中。

Parameters:
GNetworkX 图
nbunch节点,节点容器或 None(表示所有节点)
Returns:
subgraph子图视图

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

Notes

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

要在原地将图缩减为子图,可以移除节点:

G.remove_nodes_from(n in G if n not in set(nbunch))

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

Examples

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