0

我使用 python 2.7 和 networkx,我使用 convert_node_labels_to_integers。它的主要工作很好。如果我要求它不要丢弃旧标签,我不会得到我所期望的

g = nx.Graph()
g.add_edge('a','b')
g2 = nx.convert_node_labels_to_integers(g, discard_old_labels=False)
print g2[0]

当我认为 g2[0] 现在有一个带有旧标签的属性“old_labels”时,它没有属性。

难道我做错了什么?我是否误解了这是如何工作的?我必须错过一些简单的东西。

谢谢

4

2 回答 2

2

在 NetworkX 的最新(开发,即将成为 networkx-1.8)版本中,处理方式有所不同。旧标签可以选择存储为节点属性

In [1]: import networkx as nx

In [2]: G = nx.Graph([('a','b'),('b','c')])

In [3]: H = nx.convert_node_labels_to_integers(G,label_attribute='old_label')

In [4]: H.node
Out[4]: {0: {'old_label': 'a'}, 1: {'old_label': 'c'}, 2: {'old_label': 'b'}}
于 2013-06-06T11:44:47.743 回答
1

旧标签存储在图形属性 - node_labels 中。

print g2.node_labels
{'a': 0, 'b': 1}
于 2013-06-05T13:46:06.570 回答