您好,当我在.dat文件中给出图形表示形式时,我想知道如何使用networkx创建MultiDigraph吗?该文件中的示例性数据如下所示:
1 2 0.5
2 3 0.4
2 3 0.3
1 3 1.0
是否有内置函数可以执行此操作?还是应该在哪里搜索有关它的有用信息?
答案 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
作为属性放入词典字典中。