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.subgraph
在G
是子图时会这样做。相比之下,此函数允许你根据需要选择是否构建链。返回的子图是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]