![](/img/trans.png)
[英]How to Find Shortest Path Back to Self in a Graph/Adjacency Matrix - NetworkX
[英]path to adjacency matrix in networkx
我正在尝试使用networkx库将图形中的路径转换为邻接矩阵。 我可以将整个图转换为邻接矩阵:
>>>import networkx as nx
>>>DG=nx.DiGraph()
>>>DG.add_edges_from([(1,2), (2,3),(1,3)])
>>>nx.to_numpy_matrix(DG)
....matrix([[ 0., 1., 1.],
[ 0., 0., 1.],
[ 0., 0., 0.]])
但是,找到所有从节点1到节点3的简单路径后:
>>>list(nx.all_simple_paths(DG,1,3))
....[[1, 2, 3], [1, 3]]
我无法将它们转换为邻接矩阵。 我希望能够选择一条路径并将其转换为邻接矩阵,例如,第二条路径应返回:
....matrix([[ 0., 0., 1.],
[ 0., 0., 0.],
[ 0., 0., 0.]])
那不是邻接矩阵。 但是您可以轻松地自己构建它,如下所示:
import networkx as nx
import numpy as np
DG=nx.DiGraph()
DG.add_edges_from([(1,2), (2,3),(1,3)])
paths = list(nx.all_simple_paths(DG,1,3))
for path in paths:
matrix = np.matrix(np.zeros((len(DG), len(DG))))
for i in range(len(path)-1):
matrix[path[i]-1], path[i+1]-1] = 1 # edit: credits to @Joel
print(matrix)
输出:
[[ 0. 1. 0.]
[ 0. 0. 1.]
[ 0. 0. 0.]]
[[ 0. 0. 1.]
[ 0. 0. 0.]
[ 0. 0. 0.]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.