SciPy 教程 之 SciPy 稀疏矩阵 1
SciPy 稀疏矩阵
稀疏矩阵(英语:sparse matrix)指的是在数值分析中绝大多数数值为零的矩阵。反之,如果大部分元素都非零,则这个矩阵是稠密的(Dense)。
在科学与工程领域中求解线性模型时经常出现大型的稀疏矩阵。
SciPy 的 scipy.sparse 模块提供了处理稀疏矩阵的函数。
我们主要使用以下两种类型的稀疏矩阵:
CSC - 压缩稀疏列(Compressed Sparse Column),按列压缩。
CSR - 压缩稀疏行(Compressed Sparse Row),按行压缩。
CSR 矩阵
我们可以通过向 scipy.sparse.csr_matrix() 函数传递数组来创建一个 CSR 矩阵。
实例
创建 CSR 矩阵。
import numpy as np
from scipy.sparse import csr_matrix
arr = np.array([0, 0, 0, 0, 0, 1, 1, 0, 2])
print(csr_matrix(arr))
以上代码输出结果为:
(0, 5) 1
(0, 6) 1
(0, 8) 2
结果解析:
第一行:在矩阵第一行(索引值 0 )第六(索引值 5 )个位置有一个数值 1。
第二行:在矩阵第一行(索引值 0 )第七(索引值 6 )个位置有一个数值 1。
第三行:在矩阵第一行(索引值 0 )第九(索引值 8 )个位置有一个数值 2。