Как экспортировать взвешенный график networkx в список ребер в желаемом формате? - PullRequest
1 голос
/ 16 октября 2019

Я пытаюсь взять взвешенный график networkx и преобразовать его в файл edgelist .txt, где каждая строка принимает форму трех разделенных пробелом чисел, которые указывают начальный узел, конечный узел и соответствующий вес.

Вот то, что я попробовал для простого семиузлового взвешенного неориентированного графика:

 import networkx as nx
 import numpy as np
 A = np.matrix([[0,7,7,0,0],[7,0,6,0,0],[7,6,0,2,1],[0,0,2,0,4], 
 [0,0,1,4,0]])
 G = nx.from_numpy_matrix(A)
 nx.write_edgelist(G, "weighted_test_edgelist.txt", delimiter=' ')

Текстовый файл создан и выглядит следующим образом:

0 1 {'weight': 7}

0 2 {'weight': 7}

1 2 {'weight': 6}

2 3 {'weight': 2}

2 4 {'weight': 1}

3 4 {'weight': 4}

Тем не менее, я хочу, чтобы вышеприведенное вместо этого отображалось как

0 1 7

0 2 7

1 2 6

2 3 2

2 4 1

3 4 4

1 Ответ

2 голосов
/ 16 октября 2019

Попробуйте:

nx.write_edgelist(G, "weighted_test_edgelist.txt", delimiter=' ', data=['weight'])

Вывод:

0 1 7
0 2 7
1 2 6
2 3 2
2 4 1
3 4 4

По документам:

data: bool или list, необязательно Если False write, то данные ребра отсутствуют,Если True, запишите строковое представление словаря данных ребер. Если предоставляется список (или другой итеративный), запишите ключи, указанные в списке
.

...