networkx.relabel.relabel_nodes 的用法。- 用法:- relabel_nodes(G, mapping, copy=True)
- 根据给定的映射重新标记图 G 的节点。 - G:图形
- NetworkX 图 
- mapping:字典
- 以旧标签为键,新标签为值的字典。允许部分映射。允许将 2 个节点映射到单个节点。映射中的任何非节点键都将被忽略。 
- copy:布尔(可选,默认=真)
- 如果 True 返回一个副本,或者如果 False 重新标记节点。 
 
 - 参数:- 注意:- 只有映射中指定的节点才会被重新标记。映射中的任何非节点键都将被忽略。 - 关键字设置 copy=False 会修改图形。 Relabel_nodes 通过从指定重新标记顺序的 - mapping构建有向图来避免命名冲突。命名冲突(例如 a->b、b->c)按顺序排列,以便 “b” 在 “a” 重命名为 “b” 之前重命名为 “c”。在循环映射的情况下(例如 a->b、b->a),无法就地修改图形并引发异常。在这种情况下,请使用 copy=True。- 如果多重图上的重新标记操作会导致两条或多条边具有相同的源、目标和键,则必须为第二条边分配一个新键以保留所有边。新键设置为尚未用作这两个节点之间边的键的最小非负整数。请注意,这意味着非数字键可能会被数字键替换。 - 例子:- 要创建一个新图,其中节点根据给定字典重新标记: - >>> G = nx.path_graph(3) >>> sorted(G) [0, 1, 2] >>> mapping = {0: "a", 1: "b", 2: "c"} >>> H = nx.relabel_nodes(G, mapping) >>> sorted(H) ['a', 'b', 'c']- 节点可以用任何可散列对象重新标记,包括数字和字符串: - >>> import string >>> G = nx.path_graph(26) # nodes are integers 0 through 25 >>> sorted(G)[:3] [0, 1, 2] >>> mapping = dict(zip(G, string.ascii_lowercase)) >>> G = nx.relabel_nodes(G, mapping) # nodes are characters a through z >>> sorted(G)[:3] ['a', 'b', 'c'] >>> mapping = dict(zip(G, range(1, 27))) >>> G = nx.relabel_nodes(G, mapping) # nodes are integers 1 through 26 >>> sorted(G)[:3] [1, 2, 3]- 要执行部分就地重新标记,请提供仅映射节点子集的字典,并将 - copy关键字参数设置为 False:- >>> G = nx.path_graph(3) # nodes 0-1-2 >>> mapping = {0: "a", 1: "b"} # 0->'a' and 1->'b' >>> G = nx.relabel_nodes(G, mapping, copy=False) >>> sorted(G, key=str) [2, 'a', 'b']- 映射也可以作为函数给出: - >>> G = nx.path_graph(3) >>> H = nx.relabel_nodes(G, lambda x: x ** 2) >>> list(H) [0, 1, 4]- 在多重图中,将两个或多个节点重新标记到同一个新节点将保留所有边,但可能会在此过程中更改边键: - >>> G = nx.MultiGraph() >>> G.add_edge(0, 1, value="a") # returns the key for this edge 0 >>> G.add_edge(0, 2, value="b") 0 >>> G.add_edge(0, 3, value="c") 0 >>> mapping = {1: 4, 2: 4, 3: 4} >>> H = nx.relabel_nodes(G, mapping, copy=True) >>> print(H[0]) {4: {0: {'value': 'a'}, 1: {'value': 'b'}, 2: {'value': 'c'}}}- 这也适用于就地重新标记: - >>> G = nx.relabel_nodes(G, mapping, copy=False) >>> print(G[0]) {4: {0: {'value': 'a'}, 1: {'value': 'b'}, 2: {'value': 'c'}}}
相关用法
- Python NetworkX relaxed_caveman_graph用法及代码示例
- Python NetworkX read_multiline_adjlist用法及代码示例
- Python NetworkX read_weighted_edgelist用法及代码示例
- Python NetworkX read_pajek用法及代码示例
- Python NetworkX resource_allocation_index用法及代码示例
- Python NetworkX read_graph6用法及代码示例
- Python NetworkX read_graphml用法及代码示例
- Python NetworkX reverse_view用法及代码示例
- Python NetworkX read_sparse6用法及代码示例
- Python NetworkX read_adjlist用法及代码示例
- Python NetworkX read_gpickle用法及代码示例
- Python NetworkX recursive_simple_cycles用法及代码示例
- Python NetworkX restricted_view用法及代码示例
- Python NetworkX read_gml用法及代码示例
- Python NetworkX rescale_layout_dict用法及代码示例
- Python NetworkX read_shp用法及代码示例
- Python NetworkX reverse_cuthill_mckee_ordering用法及代码示例
- Python NetworkX read_edgelist用法及代码示例
- Python NetworkX random_partition_graph用法及代码示例
- Python NetworkX random_shell_graph用法及代码示例
- Python NetworkX random_degree_sequence_graph用法及代码示例
- Python NetworkX random_geometric_graph用法及代码示例
- Python NetworkX random_layout用法及代码示例
- Python NetworkX ra_index_soundarajan_hopcroft用法及代码示例
- Python NetworkX random_clustered_graph用法及代码示例
注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.relabel.relabel_nodes。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
