从igraph

时间:2018-07-12 13:05:32

标签: python igraph weighted

我想在python中制作一个加权和无向图。

我在一个文本文件(all_edges.txt)中有一个边列表,其中每行显示2个字母和一个数字

第一个字母和第二个字母是彼此连接的节点,数字是相应边的权重。例如:

A  B  5

这意味着节点A连接到节点B,并且相应边的权重为5。

这是我编写的用于从文本文件导入图形的代码:

from igraph import *
import csv as csvlib
import random
import numpy as np

graph = Graph.Read_Ncol('all_edges.txt', weighted=True, directed=False)

但是我不知道如何包括边缘的重量。

1 个答案:

答案 0 :(得分:0)

假设,您有一个.txt文件,如下所示:

A B 2
B C 3

按如下所示使用Graph.Read_Ncoldirected=False

g = Graph.Read_Ncol("edges.txt",names=True, directed=False)

验证使用:

print(g.get_edgelist())
print(g.es["weight"])
print(g.vs["name"])

结果:

[(0, 1), (1, 2)]
[2.0, 3.0]
['A', 'B', 'C']