在创建初始化的时候用二维数据graph[i][j]先都定为float('inf')
怎么创建可以快一点,原本我是一个个根据图修改过来好慢graph[0][0]=0
问题写的不是很明确,估计是想问如何方便地对 图进行初始化。
(1) 向图中添加多条赋权边: (node1,node2,weight)
# 问题 2:无向图的最短路问题
gAnt = nx.Graph() # 创建:空的 无向图
gAnt.add_weighted_edges_from([(0,1,3),(0,2,1),(0,3,1),
(1,2,1),(1,4,1),(1,9,4),
(2,3,1),(2,4,2),(2,5,1),
(3,5,2),(3,6,2),(3,7,1),
(4,5,1),(4,9,1),
(5,6,1),(5,9,3),(5,10,1),(5,12,3),
(6,7,1),(6,8,2),(6,12,2),(6,13,4),(6,14,3),
(7,8,1),
(8,14,1),(8,15,3),
(9,10,1),(9,11,1),
(10,11,1),(10,12,2),
(11,12,1),(11,16,1),
(12,13,2),(12,16,1),
(13,14,1),(13,15,2),(13,16,2),(13,17,1),
(14,15,1),
(15,17,4),
(16,17,1)]) # 向图中添加多条赋权边: (node1,node2,weight)
(2)由 pandas 顶点邻接矩阵 创建 NetworkX 图
# # 从Pandas数据格式(顶点邻接矩阵)创建 NetworkX 图
# # from_pandas_adjacency(df, create_using=None) # 邻接矩阵,n行*n列,矩阵数据表示权重
dfAdj = pd.DataFrame([[0, 50, 0, 40, 25, 10], # 0 表示不邻接,
[50, 0, 15, 20, 0, 25],
[0, 15, 0, 10, 20, 0],
[40, 20, 10, 0, 10, 25],
[25, 0, 20, 10, 0 ,55],
[10, 25, 0, 25, 55, 0]])
G1 = nx.from_pandas_adjacency(dfAdj) # 由 pandas 顶点邻接矩阵 创建 NetworkX 图
参见: Python数模笔记-NetworkX(3)条件最短路径(https://blog.csdn.net/youcans/category_11031563.html?spm=1001.2014.3001.5482)