本文簡要介紹
networkx.classes.graphviews.subgraph_view
的用法。用法:
subgraph_view(G, filter_node=<function no_filter>, filter_edge=<function no_filter>)
G
的視圖在節點和邊上應用過濾器。subgraph_view
提供輸入圖的隻讀視圖,該視圖根據兩個過濾器函數filter_node
和filter_edge
的結果排除節點和邊。filter_node
函數接受一個參數 - 節點 - 如果節點應該包含在子圖中,則返回True
,如果不應該包含則返回False
。filter_edge
函數接受兩個(如果G
是 multi-graph 則為三個參數)——說明邊的節點,加上 edge-key(如果可能有平行邊)——如果應該包含邊,則返回True
在子圖中,如果不應該包括False
。在查詢圖元素時,節點和邊過濾器函數都會被調用,這意味著創建視圖沒有 up-front 成本。
- graph:networkx.Graph
輸入圖的隻讀圖視圖。
參數:
返回:
例子:
>>> G = nx.path_graph(6)
過濾函數對節點進行操作,如果節點應該出現在視圖中,則返回
True
:>>> def filter_node(n1): ... return n1 != 5 ... >>> view = nx.subgraph_view(G, filter_node=filter_node) >>> view.nodes() NodeView((0, 1, 2, 3, 4))
我們可以使用閉包模式根據附加數據過濾圖元素——例如,過濾附在圖上的邊數據:
>>> G[3][4]["cross_me"] = False >>> def filter_edge(n1, n2): ... return G[n1][n2].get("cross_me", True) ... >>> view = nx.subgraph_view(G, filter_edge=filter_edge) >>> view.edges() EdgeView([(0, 1), (1, 2), (2, 3), (4, 5)])
>>> view = nx.subgraph_view(G, filter_node=filter_node, filter_edge=filter_edge,) >>> view.nodes() NodeView((0, 1, 2, 3, 4)) >>> view.edges() EdgeView([(0, 1), (1, 2), (2, 3)])
相關用法
- Python NetworkX sudoku_graph用法及代碼示例
- Python NetworkX single_source_dijkstra_path_length用法及代碼示例
- Python NetworkX single_source_bellman_ford用法及代碼示例
- Python NetworkX shortest_path用法及代碼示例
- Python NetworkX square_clustering用法及代碼示例
- Python NetworkX soft_random_geometric_graph用法及代碼示例
- Python NetworkX sets用法及代碼示例
- Python NetworkX simrank_similarity用法及代碼示例
- Python NetworkX shell_layout用法及代碼示例
- Python NetworkX single_source_bellman_ford_path用法及代碼示例
- Python NetworkX single_source_bellman_ford_path_length用法及代碼示例
- Python NetworkX single_source_shortest_path_length用法及代碼示例
- Python NetworkX snap_aggregation用法及代碼示例
- Python NetworkX set_edge_attributes用法及代碼示例
- Python NetworkX stochastic_block_model用法及代碼示例
- Python NetworkX symmetric_difference用法及代碼示例
- Python NetworkX selfloop_edges用法及代碼示例
- Python NetworkX second_order_centrality用法及代碼示例
- Python NetworkX simulated_annealing_tsp用法及代碼示例
- Python NetworkX shortest_augmenting_path用法及代碼示例
- Python NetworkX spring_layout用法及代碼示例
- Python NetworkX simple_cycles用法及代碼示例
- Python NetworkX single_source_dijkstra用法及代碼示例
- Python NetworkX spectral_bipartivity用法及代碼示例
- Python NetworkX strong_product用法及代碼示例
注:本文由純淨天空篩選整理自networkx.org大神的英文原創作品 networkx.classes.graphviews.subgraph_view。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。