Edge attributes of shortest path using networkx(利用networkx求解最短路径的边属性)
本文介绍了利用networkx求解最短路径的边属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用networkx计算两个节点之间的最短路径。例如:
paths = nx.shortest_path(G, ‘A’, ‘C’, weight=‘cost’)
paths将返回如下内容:
[‘A’,‘B’,‘C’]
nx.shortest_path_length()返回该路径的成本,这也很有帮助。但是,我也想返回此路径遍历的边的列表。在这些边缘中有我存储的其他属性,我想要返回这些属性。
这可能吗?
推荐答案
以下是您需要的所有代码(希望:p):
import numpy as np
# import matplotlib.pyplot as plt
import networkx as nx
# Create a random graph with 8 nodes, with degree=3
G = nx.random_regular_graph(3, 8, seed=None)
# Add 'cost' attributes to the edges
for (start, end) in G.edges:
G.edges[start, end]['cost'] = np.random.randint(1,10)
# Find the shortest path from 0 to 7, use 'cost' as weight
sp = nx.shortest_path(G, source=0, target=7, weight='cost')
print("Shortest path: ", sp)
# Create a graph from 'sp'
pathGraph = nx.path_graph(sp) # does not pass edges attributes
# Read attributes from each edge
for ea in pathGraph.edges():
#print from_node, to_node, edge's attributes
print(ea, G.edges[ea[0], ea[1]])
输出如下所示:
Shortest path: [0, 5, 7]
(0, 5) {'cost': 2}
(5, 7) {'cost': 3}
这篇关于利用networkx求解最短路径的边属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
编程基础网
本文标题为:利用networkx求解最短路径的边属性
基础教程推荐
猜你喜欢
- 与常规 dict 相比,Python manager.dict() 非常慢 2022-01-01
- 使用生成器和迭代器时 Python 多循环失败 2022-01-01
- 在 Celery 工作人员中捕获 Heroku SIGTERM 以优雅地关 2022-01-01
- Discord.py 缺少必需的参数 2022-01-01
- 尝试制作WhatsApp机器人 2022-01-01
- 由Python将MP3转换为MIDI(类型错误:无法加载插件:mtg-Melodia:Melodia) 2022-01-01
- 用 Python 编写 Fortran 无格式文件 2022-01-01
- numpy float:比算术运算中内置的慢 10 倍? 2022-01-01
- pyserial - 可以从线程 a 写入串行端口,是否阻塞从线程 b 读取? 2022-01-01
- 将 x 轴刻度更改为自定义字符串 2022-01-01
