#python #networkx
#python #networkx
Вопрос:
Я хотел знать, как я могу изменить имя одного узла узла орграфа. Я новичок в networkx и смог найти ответы только о том, как изменить имена всех узлов.
В моем случае я перебираю график A, чтобы создать график B. p
и c
являются узлами графа A. Ребро (p, c) графа A содержит данные, которые я хочу добавить к узлу p
B. Однако, когда я добавляю данные ребра из графа A в уже существующий узел p
графа B, я хотел бы обновить имя p
, чтобы оно было равно имени c
, поэтому явозможность снова ссылаться на него для следующего ребра графа A, потому что тогда это ребро (c, x), и я могу использовать c
для повторной ссылки на него…
Соответствующая часть моего кода выглядит следующим образом
new_stages = A.in_edge(c, data='stages')
stages = B.node[p]['stages']
stages.append(new_stages)
<<Update node p to have name of c??>>
B.add_node(p, stages=new_stage_set)
Любая помощь приветствуется, спасибо!
Ответ №1:
У вас есть nx.relabel_nodes
для этого. Вот простой пример использования:
G = nx.from_edgelist([('a','b'), ('f','g')])
mapping = {'b':'c'}
G = nx.relabel_nodes(G, mapping)
G.edges()
# EdgeView([('a', 'c'), ('f', 'g')])