Dijkstra的邻接矩阵算法

Hoo*_*ady 2 python graph dijkstra matrix

我有一个由2D数组表示的有向无环图的邻接矩阵:

[[0, 4, 3, 0]
 [0, 0, 0, 1]
 [0, 3, 0, 1]
 [2, 0, 0, 0]]
Run Code Online (Sandbox Code Playgroud)

是否有可以在此数据类型上运行Dijkstra算法的Python模块或快速代码片段?Python cookbook使用了我认为的优先级字典,但我真的想将它保存在2D数组中.任何帮助,将不胜感激.

unu*_*tbu 6

networkx可能符合您的需求:

import networkx as nx
import numpy as np
A = np.array([[0, 4, 3, 0],
              [0, 0, 0, 1],
              [0, 3, 0, 1],
              [2, 0, 0, 0]])
G = nx.from_numpy_matrix(A, create_using=nx.DiGraph())
print(nx.dijkstra_path(G, 0, 1))
Run Code Online (Sandbox Code Playgroud)

另请参见:networkx.dijkstra_path