怎么用python把关系转成邻接矩阵
时间: 2023-05-29 22:01:08 浏览: 334
可以使用Python的矩阵库NumPy来实现将关系转化成邻接矩阵的功能。具体步骤如下:
1. 定义一个空的二维列表或数组,用于存储邻接矩阵。
2. 根据实际情况,初始化邻接矩阵的大小和默认值,比如如果关系有 n 个节点,则邻接矩阵的大小就是 n * n。
3. 遍历所有关系,将每个关系在邻接矩阵中对应的元素设为 1 或者具体的边的权重。
4. 如果是无向图,邻接矩阵沿主对角线对称。如果是有向图,则不需要对称。
5. 输出得到的邻接矩阵。
下面是一个样例代码,用来将一个无向图的关系转换成邻接矩阵:
``` python
import numpy as np
# 定义关系列表
edges = [(0, 1), (0, 2), (1, 2), (2, 3)]
# 计算节点数
n_nodes = max([max(edge) for edge in edges]) + 1
# 初始化邻接矩阵
adj_matrix = np.zeros((n_nodes, n_nodes), dtype=int)
# 填充邻接矩阵
for edge in edges:
i, j = edge
adj_matrix[i][j] = 1
adj_matrix[j][i] = 1
# 输出邻接矩阵
print(adj_matrix)
```
输出结果为:
```
array([[0, 1, 1, 0],
[1, 0, 1, 0],
[1, 1, 0, 1],
[0, 0, 1, 0]])
```
以上代码将一个由 4 个节点和 4 条边组成的无向图的关系转换成邻接矩阵,并输出了结果。其中矩阵中每个 1 表示存在一条边相连的节点,0 表示不存在边相连。邻接矩阵沿主对角线对称,因为这是一个无向图。如果是有向图,则不需要对称。
阅读全文