本文简要介绍
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。