2.5.2. Storage Schemes

  • scipy.sparse中的七种稀疏矩阵类型:
    1. csc_matrix:压缩稀疏列格式
    2. csr_matrix:压缩稀疏行格式
    3. bsr_matrix:块稀疏行格式
    4. lil_matrix:列表列表格式
    5. dok_matrix:密钥字典格式
    6. coo_matrix:COOrdinate格式(aka IJV,triplet格式)
    7. dia_matrix:DIA正交格式
  • 每个都适合一些任务

  • 许多采用sparsetools C ++模块由Nathan贝尔

  • 假设导入以下内容:

    >>> import numpy as np
    
    >>> import scipy.sparse as sps
    >>> import matplotlib.pyplot as plt
  • 警告 NumPy用户:
    • 与“*”的乘法是矩阵乘法(点积)
    • 不是NumPy的一部分!
      • 传递稀疏矩阵对象到NumPy函数期望ndarray / matrix不工作

2.5.2.1. Common Methods

  • 所有scipy.sparse类都是spmatrix的子类
    • 默认实现算术运算
      • 始终转换为CSR
      • 子类覆盖效率
    • 形状,数据类型集合/获得
    • 非零指数
    • 格式转换,与NumPy(toarray()todense()的交互)
    • ...
  • 属性:
    • mtx.A - 与mtx.toarray()相同
    • mtx.T - transpose(与mtx.transpose()相同)
    • mtx.H - Hermitian(共轭)转置
    • mtx.real - 复数矩阵的实部
    • mtx.imag - 复数矩阵的虚部
    • mtx.size - 非零数(与self.getnnz()相同)
    • mtx.shape - 行数和列数(元组)
  • 数据通常存储在NumPy数组中

2.5.2.3. 小节

Summary of storage schemes.
格式 矩阵*向量 获取元素 花式获取 设置元素 花式设置 求解器
DIA sparsetools . . . . 迭代 有数据数组,专门
LIL 通过CSR 迭代 通过CSR,增量施工
DOK python 只有一个轴 迭代 O(1)项访问,增量构造
COO sparsetools . . . . 迭代 有数据数组,便于快速转换
CSR sparsetools . 任何 有数据数组,快速行操作
CSC sparsetools . 任何 有数据数组,快速按列操作
BSR sparsetools . . . . 专门 有数据数组,专门