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 に答える