六、 稀疏矩阵

  1. 稀疏矩阵是那些矩阵中大部分为零的矩阵。这种矩阵只用保存非零元素的相关信息,从而节约了内存的使用。scipy.sparse提供了多种表示稀疏矩阵的格式。scipy.sparse.lialg提供了对稀疏矩阵进行线性代数运算的函数。scipy.sparse.csgraph提供了对稀疏矩阵表示的图进行搜索的函数。

  2. scipy.sparse中有多种表示稀疏矩阵的格式:

    • dok_matrix:采用字典保存矩阵中的非零元素:字典的键是一个保存元素(行,列)信息的元组,对应的值为矩阵中位于(行,列)中的元素值。这种格式很适合单个元素的添加、删除、存取操作。通常先逐个添加非零元素,然后转换成其他支持高效运算的格式
    • lil_matrix:采用两个列表保存非零元素。data保存每行中的非零元素,row保存非零元素所在的列。
    • coo_matrix:采用三个数组row/col/data保存非零元素。这三个数组的长度相同,分别保存元素的行、列和元素值。coo_matrix不支持元素的存取和增删,一旦创建之后,除了将之转换成其他格式的矩阵,几乎无法对其进行任何操作和矩阵运算。