我需要从外部文件读取加权图

在其他帖子中建议使用ncol,但我尝试了“ ncol”格式,但无法正常工作:

g = igraph.Graph.Read_Ncol("small.ncol")
for vertex in g.vs():
    print vertex["weight"]


小号

0   1   0.47
2   0   0.67
2   1   0.94
3   0   0.98
3   1   0.05
3   2   0.24
4   0   0.12
4   1   0.22
4   2   0.36
4   3   0.69
5   0   0.82
6   5   0.97
7   5   0.43
7   6   0.83
8   5   0.44
8   6   0.49
8   7   0.39
9   5   0.37
9   6   0.55
9   7   0.73
9   8   0.68
10  0   0.34
11  10  0.22
12  11  0.40
13  12  0.78
14  10  0.59
14  13  0.81


输出:

Traceback (most recent call last):
  File "stackoverflow.py", line 54, in <module>
    print vertex["weight"]
KeyError: 'Attribute does not exist'


我试图从Nexus读取加权图:

例如:这是一个加权图:http://nexus.igraph.org/api/dataset_info?format=xml&id=1

<id>1</id>
<sid>karate</sid>
<tags>
    <tag>social network</tag>
    <tag>undirected</tag>
    **<tag>weighted</tag>**
</tags>


但也行不通:

g = igraph.Nexus.get("karate")
for vertex in g.vs():
    print vertex["weight"]


输出:

Traceback (most recent call last):
  File "stackoverflow.py", line 54, in <module>
    print vertex["weight"]
KeyError: 'Attribute does not exist'


我不知道如何阅读加权图,有人可以帮忙吗?

最佳答案

您正在尝试读取顶点的权重,但是在这些图形中,权重对应于边:

g = igraph.Nexus.get("karate")
for edge in g.es:
    print edge["weight"]

关于python - 在python中使用“igraph”读取加权图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23347076/

10-13 07:12