本文簡要介紹
networkx.MultiGraph.subgraph
的用法。用法:
MultiGraph.subgraph(nodes)
返回在
nodes
上誘導的子圖的 SubGraph 視圖。圖的誘導子圖包含
nodes
中的節點以及這些節點之間的邊。- nodes:列表,可迭代
將迭代一次的節點容器。
- G:SubGraph 查看
圖的子圖視圖。圖結構不能更改,但節點/邊屬性可以並且與原始圖共享。
參數:
返回:
注意:
圖、邊和節點屬性與原始圖共享。視圖排除了對圖形結構的更改,但對屬性的更改會反映在原始圖形中。
要創建具有自己的邊/節點屬性副本的子圖,請使用: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)]
相關用法
- Python NetworkX MultiGraph.size用法及代碼示例
- Python NetworkX MultiGraph.clear用法及代碼示例
- Python NetworkX MultiGraph.has_edge用法及代碼示例
- Python NetworkX MultiGraph.add_weighted_edges_from用法及代碼示例
- Python NetworkX MultiGraph.add_node用法及代碼示例
- Python NetworkX MultiGraph.neighbors用法及代碼示例
- Python NetworkX MultiGraph.remove_node用法及代碼示例
- Python NetworkX MultiGraph.copy用法及代碼示例
- Python NetworkX MultiGraph.number_of_edges用法及代碼示例
- Python NetworkX MultiGraph.__contains__用法及代碼示例
- Python NetworkX MultiGraph.remove_nodes_from用法及代碼示例
- Python NetworkX MultiGraph.add_nodes_from用法及代碼示例
- Python NetworkX MultiGraph.has_node用法及代碼示例
- Python NetworkX MultiGraph.edge_subgraph用法及代碼示例
- Python NetworkX MultiGraph.__len__用法及代碼示例
- Python NetworkX MultiGraph.nodes用法及代碼示例
- Python NetworkX MultiGraph.to_undirected用法及代碼示例
- Python NetworkX MultiGraph.remove_edges_from用法及代碼示例
- Python NetworkX MultiGraph.order用法及代碼示例
- Python NetworkX MultiGraph.add_edge用法及代碼示例
- Python NetworkX MultiGraph.number_of_nodes用法及代碼示例
- Python NetworkX MultiGraph.degree用法及代碼示例
- Python NetworkX MultiGraph.__iter__用法及代碼示例
- Python NetworkX MultiGraph.update用法及代碼示例
- Python NetworkX MultiGraph.edges用法及代碼示例
注:本文由純淨天空篩選整理自networkx.org大神的英文原創作品 networkx.MultiGraph.subgraph。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。