使用networkx和.dat文件创建MultiDiGraph给

时间:2018-11-03 13:24:07

标签: python networkx graph-theory

您好,当我在.dat文件中给出图形表示形式时,我想知道如何使用networkx创建MultiDigraph吗?该文件中的示例性数据如下所示:

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

是否有内置函数可以执行此操作?还是应该在哪里搜索有关它的有用信息?

1 个答案:

答案 0 :(得分:1)

您可以使用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作为属性放入词典字典中。