Sparse Matrix in Scipy

spmatrix

基本类。

csc_matrix

最为常用的稀疏矩阵格式之一,对列运算支持较高,应该是按列存储稀疏结构,CSC格式优点:

  • 高效支持运算符,CSC+CSC,CSC*CSC等等
  • 高效列分割
  • 快速矩阵向量乘积(可能不如CSR和BSR)

缺点:

  • 相比如CSR行切割较慢
  • 转换为其他稀疏结构较慢,如LIL和DOK

csr_matrix

最为常用的稀疏矩阵格式之一,对行运算支持较高,应该是按行存储稀疏结构,CSR格式优点:

  • 高效支持运算符,CSR+CSR,CSR*CSR等等
  • 高效行分割
  • 快速矩阵向量乘积

缺点:

  • 相比如CSC列切割较慢
  • 转换为其他稀疏结构较慢,如LIL和DOK

dok_matrix

采用字典的键值对存储的矩阵格式,支持常规运算,并且有O(1)的查找速度,不能复制,可以快速转成coo_matrix格式

coo_matrix

采用坐标记录的,形成(i,j,v) 的三元组,优点为:

  • 转换其他系数格式十分迅速
  • 允许复制
  • 转化为CSR/CSC格式很快

缺点

  • 不直接支持运算和切片

bsr_matrix

块稀疏矩阵格式,分成(R,C)的矩阵块来存储。

lil_matrix

行连接列表的系数矩阵格式,适用于大小增长的稀疏矩阵,优点:

  • 支持切片
  • 高效转换成其他稀疏矩阵格式

缺点:

  • 运算较慢
  • 列切片较慢
  • 乘积较慢

dia_matrix

稀疏对角矩阵存储,支持运算