我有一个简单的图表,如下所示:
edge_list = [[1,1],[1,2],[1,3],[2,3]]我想使用relabel.convert_node_labels_to_integers()方法用连续整数标记节点,就像文档中所说的那样。我对该方法的使用期望的是以下dict:
{0: 0, 1: 1, 2: 2, 3:3}但我得到了以下信息:
{0: 0, 1: 1, 2: 2}有人能解释一下为什么吗?谢谢
发布于 2021-12-29 14:58:28
边缘列表定义了三个节点,1,2,3 (其中有四个边)。
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命名的。在这种情况下,重命名节点标签没有效果,因此字典键和值匹配。
https://stackoverflow.com/questions/70513862
复制相似问题