首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >networkx.relabel.convert_node_labels_to_integers解释

networkx.relabel.convert_node_labels_to_integers解释
EN

Stack Overflow用户
提问于 2021-12-29 00:08:16
回答 1查看 30关注 0票数 1

我有一个简单的图表,如下所示:

代码语言:javascript
复制
    edge_list = [[1,1],[1,2],[1,3],[2,3]]

我想使用relabel.convert_node_labels_to_integers()方法用连续整数标记节点,就像文档中所说的那样。我对该方法的使用期望的是以下dict:

代码语言:javascript
复制
    {0: 0, 1: 1, 2: 2, 3:3}

但我得到了以下信息:

代码语言:javascript
复制
    {0: 0, 1: 1, 2: 2}

有人能解释一下为什么吗?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-29 14:58:28

边缘列表定义了三个节点,1,2,3 (其中有四个边)。

代码语言:javascript
复制
import networkx as nx

G = nx.Graph()

edge_list = [[1, 1], [1, 2], [1, 3], [2, 3]]

G.add_edges_from(edge_list)

print(G.nodes())  # [1, 2, 3]

GG = nx.relabel.convert_node_labels_to_integers(G)

print(GG.nodes())  # [0, 1, 2]

mapping = {k: GG.nodes[k]["old_id"] for k in GG.nodes()}
print(mapping) # {0: 1, 1: 2, 2: 3}

在您的输出中,似乎在某个时候节点是使用0,1,2命名的。在这种情况下,重命名节点标签没有效果,因此字典键和值匹配。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70513862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档