Python的igraph包是否提供计算图距离矩阵的方法?
Python版igraph包内置了和R版功能完全一致的网络图距离矩阵计算能力,对应方法为Graph实例的distances()方法,你之前找到的Point.distance属于几何点距离计算工具,和网络图场景的最短路径距离计算无关,无需混淆。
你给出的伪代码可以修改为如下可运行版本:
from igraph import Graph # 创建图:注意原伪代码中节点最大编号为5,总节点数应为6 graph = Graph(n=6, edges=[(0,1), (1,4), (2,3), (2,4), (2,5) , (3,5), (4,0)], directed=False) # 计算全图所有节点对的最短距离矩阵 dist_matrix = graph.distances()
补充说明
- 该方法默认计算无权图的最短跳数距离,若需要计算加权最短距离,传入参数
weights="weight"即可(前提是你的边属性中存储了名为weight的权重值) - 可以通过
v和to参数指定仅计算特定源节点到目标节点的距离,无需全量计算 - 返回的
dist_matrix为嵌套列表结构,dist_matrix[i][j]对应节点i到节点j的最短距离,两点不可达时返回inf
内容的提问来源于stack exchange,提问作者MrCharles
相关产品推荐
相关产品推荐

