如何在python igraph中从.gml文件创建加权图



我有一个.gml文件(Nor graphML),其中包含我的节点和边缘的详细信息。我正在通过以下代码使用 igraph 库在 python 中导入图形:

g = igraph.read("mydata.gml")"

我已经在我的 .gml 文件中给出了边缘的值:

edge
[
source 1
target 0
value 6.25
]

此外,文件以

graph
[
  directed 0
  weighted 1

但是当我检查时,g.is_weighted() 它返回 false。如何使 igraph 将 .gml 文件中的值作为图形边缘的权重?

is_weighted() 方法只是检查图形是否具有名为 weight 的边属性。在您的情况下,您不会这样做,因为 GML 文件中的值存储在 value edge 属性中,而不是存储在 weight 中。解决方案是将输入文件中出现的 value 替换为 weight,或者在加载文件后重命名 igraph 中的属性,如下所示:

g.es["weight"] = g.es["value"]
del g.es["value"]