Я использую библиотеку NetworkX с Python.Доступ к узлу строковой метки с внутренней частью строки
Я хочу иметь возможность обращаться к узлу, используя только идентификатор int, который является частью имени узла (строки) для различных целей, например, для получения кратчайшего пути между двумя узлами.
MWE:
Допустим, что я импортировать Pajek отформатированный файл:
import networkx as nx
G=nx.read_pajek("pajek_network_file.net")
G=nx.Graph(G)
Содержимое моего файла являются (В Pajek, узлы называются "Вершины"):
*Network
*Vertices 6
123 Author1
456 Author2
789 Author3
111 Author4
222 Author5
333 Author6
*Edges
123 333
333 789
789 222
Какую команду следует использовать для печати узла Author4, используя только его идентификатор 111?
До сих пор я пытался формат G.node [NodeId], как:
print G.node[111]
, но это возвращает ошибку, потому что он пытается найти узел LABEL = 111, что, конечно, не существует.
В последующий вопрос, в идеале я хотел бы не только напечатать узел по идентификатору, но и использовать ее с функциями, такие как
nx.shortest_path_length(G,source_nodeid,target_nodeid)
Что я делаю как произведение вокруг на данный момент создается сетевой файл .net с повторением столбца идентификатора узла дважды, чтобы использовать тот же номер идентификатора, что и «метка узла».
Я уверен, что ответ должен быть очень простым, но он просто ускользнул от меня до тех пор, даже после многократного Googling и прохождения документации ... Любая помощь будет оценена!