三元组表输入输出为稀疏矩阵代码
时间: 2024-03-09 08:48:14 浏览: 59
利用三元组实现稀疏矩阵的操作
以下是Python代码示例,演示如何将稀疏矩阵转换为三元组表,以及如何将三元组表输出为稀疏矩阵。
```python
# 稀疏矩阵转为三元组表
def sparse_to_triplet(sparse_matrix):
triplet = []
rows, cols = sparse_matrix.shape
for i in range(rows):
for j in range(cols):
if sparse_matrix[i, j] != 0:
triplet.append((i, j, sparse_matrix[i, j]))
return triplet, rows, cols
# 三元组表转为稀疏矩阵
def triplet_to_sparse(triplet, rows, cols):
sparse_matrix = np.zeros((rows, cols))
for i, j, value in triplet:
sparse_matrix[i, j] = value
return sparse_matrix
# 测试代码
import numpy as np
# 创建一个稀疏矩阵
sparse_matrix = np.array([[1, 0, 0, 0],
[0, 2, 0, 0],
[0, 0, 0, 3]])
# 将稀疏矩阵转为三元组表
triplet, rows, cols = sparse_to_triplet(sparse_matrix)
print("稀疏矩阵转为三元组表:")
print("triplet:", triplet)
print("rows, cols:", rows, cols)
# 将三元组表转为稀疏矩阵
sparse_matrix = triplet_to_sparse(triplet, rows, cols)
print("三元组表转为稀疏矩阵:")
print(sparse_matrix)
```
输出结果如下:
```
稀疏矩阵转为三元组表:
triplet: [(0, 0, 1), (1, 1, 2), (2, 3, 3)]
rows, cols: 3 4
三元组表转为稀疏矩阵:
[[1. 0. 0. 0.]
[0. 2. 0. 0.]
[0. 0. 0. 3.]]
```
在上面的代码中,我们首先创建了一个稀疏矩阵,然后调用 `sparse_to_triplet` 方法将其转为三元组表,再调用 `triplet_to_sparse` 方法将三元组表转为稀疏矩阵,并将转换结果输出。
阅读全文