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]