矩阵可分为稠密矩阵和稀疏矩阵,对于稀疏矩阵而言,使用同样的内存来存储这个矩阵显然是对内存的浪费,那么我们就可以想办法将矩阵中所有的o元素挥着不相关元素剔除,怎么剔除,第一种方法是通过三个一维矩阵来存储原二维矩阵中的所有非0元素,三个矩阵分别为value、column、row, value 数组存储所有的非零元素, column 数组存储所有非零元素的列下标 row 数组存储所有的非零元素的行下标 看例子 [1,0,0,2] [0,0,3,4] [4,5,6,0] [6,0,3,0] 压缩存储后 value = [1,2,3,4,4,5,6,6,3] cloumn=[0,3,2,3,0,1,2,0,2] row = [0,0,1,1,2,2,2,3,3,] 可以看到压缩存储的样子,但是,我们通过row行可以看到,很多重复的数值,也就是每一行的多个元素,每个元素都对应着同样的行号,这样也浪费的空间,因此,我们引入csr稀疏矩阵存储方式,该存储方式将重复的行号压缩,只记录,开头和结尾元素的位置,具体的做法如下图: