我想在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)
但是我不知道如何包括边缘的重量。
答案 0 :(得分:0)
假设,您有一个.txt
文件,如下所示:
A B 2
B C 3
按如下所示使用Graph.Read_Ncol
和directed=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']