Создание MultiDiGraph с использованием networkx с файлом .dat - PullRequest
0 голосов
/ 03 ноября 2018

Привет, мне интересно, как создать MultiDigraph с помощью networkx, когда у меня есть представление графика в файле .dat? Примерные данные в этом файле выглядят так:

1 2 0.5
2 3 0.4
2 3 0.3
1 3 1.0

Есть ли встроенная функция для этого? Или где мне искать полезную информацию об этом?

1 Ответ

0 голосов
/ 03 ноября 2018

Вы можете использовать read_edgelist :

import networkx as nx

graph = nx.MultiGraph()
nx.read_edgelist('edges.dat', create_using=graph, nodetype=int, data=(('weight', float),))

for u, v, _ in graph.edges:
    print(u, v, graph.get_edge_data(u, v))

выход

1 2 {0: {'weight': 0.5}}
1 3 {0: {'weight': 1.0}}
2 3 {0: {'weight': 0.4}, 1: {'weight': 0.3}}
2 3 {0: {'weight': 0.4}, 1: {'weight': 0.3}}

Обратите внимание, что это читает график из файла с именем 'edges.dat' в указанном формате:

1 2 0.5
2 3 0.4
2 3 0.3
1 3 1.0

Функция создает график и для каждого помещает weight в качестве атрибута в словарь словарей.

...