【问题标题】:Import / create a weighted and undirected graph from a txt file in igraph从 igraph 中的 txt 文件导入/创建加权无向图
【发布时间】:2023-10-26 08:31:01
【问题描述】:

我想在 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)

但我不知道如何计算边缘的重量。

【问题讨论】:

  • 好问题。看我的回答

标签: python igraph weighted


【解决方案1】:

假设您有一个像这样的.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']

【讨论】:

    最近更新 更多