稀疏矩阵的线性代数

对于稀疏矩阵来说,其线性代数操作可以使用 scipy.sparse.linalg 实现:

In [1]:

  1. import scipy.sparse.linalg

矩阵操作

  • scipy.sparse.linalg.inv
    • 稀疏矩阵求逆
  • scipy.sparse.linalg.expm
    • 求稀疏矩阵的指数函数

矩阵范数

  • scipy.sparse.linalg.norm
    • 稀疏矩阵求范数

线性方程组求解

提供了一系列求解方法:http://docs.scipy.org/doc/scipy/reference/sparse.linalg.html#solving-linear-problems

主要使用的是迭代方法求解。

特征值分解和奇异值分解

对于特别大的矩阵,原来的方法可能需要太大的内存,考虑使用这两个方法替代:

  • scipy.sparse.linalg.eigs
    • 返回前 k 大的特征值和特征向量
  • scipy.sparse.linalg.svds
    • 返回前 k 大的奇异值和奇异向量

所有的这些操作既可以在稀疏矩阵上使用,也可以在普通矩阵上使用。

原文: https://nbviewer.jupyter.org/github/lijin-THU/notes-python/blob/master/04-scipy/04.10-sparse-linear-algebra.ipynb