【发布时间】:2021-03-09 20:16:58
【问题描述】:
我有一个这样的邻接列表:
0 1 4 5
1 0 2 6
2 1 3 7
3 2 4 8
4 0 3 9
5 0 7 8
6 1 8 9
7 2 5 9
8 3 5 6
9 4 6 7
第一行表示0与1、4、5相邻;第二行表示 1 与 0、2 和 6 相邻;第三行是说 2 与 1、3 和 7 相邻,...
我怎样才能将它转换成这样的邻接矩阵?
0 1 0 0 1 1 0 0 0 0
1 0 1 0 0 0 1 0 0 0
0 1 0 1 0 0 0 1 0 0
0 0 1 0 1 0 0 0 1 0
1 0 0 1 0 0 0 0 0 1
1 0 0 0 0 0 0 1 1 0
0 1 0 0 0 0 0 0 1 1
0 0 1 0 0 1 0 0 0 1
0 0 0 1 0 1 1 0 0 0
0 0 0 0 1 0 1 1 0 0
【问题讨论】:
-
你在使用 numpy 吗?
a = np.zeros((10,10))/a[0,[1,4,5]] = 1会做到的。 -
嘿@tim,感谢您的快速回复,我尝试了您的方法,它给了我这个矩阵:
[[0. 1. 0. 0. 1. 1. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]][[0. 1. 0. 0. 1. 1. 0. 0. 0. 0.] -
* 那个矩阵重复了几次,我是不是打错了?我以为您的“/”表示跳过一行
-
我向您展示了第一行的示例,假设您可以将其扩展为处理所有内容的循环。我会发布一个答案来说明我的意思。
标签: python python-3.x adjacency-matrix adjacency-list