如果矩阵中大部分的元素都为0,被称为稀疏矩阵。用NumPy的ndarray数组保存这样的矩阵,由于很多0将很浪费内存,由于矩阵的稀疏特性,可以通过只保存非零元素的相关信息,从而节约内存的使用。此外,针对这种特殊结构的矩阵编写运算函数,也可以提高矩阵的运算速度。
1. 压缩矩阵
from scipy import sparse
allmatrix_sp=sparse.csr_matrix(allmatrix) # 采用行优先的方式压缩矩阵
sparse.save_npz('allmatrix_sparse.npz',allmatrix_sp) # 保存稀疏矩阵
通过压缩,可以使稀疏矩阵所占磁盘容量仅有原来的3%
2. 读取和还原压缩矩阵
allmatrix_sp= sparse.load_npz('allmatrix_sparse.npz') # 读取
allmatrix=allmatrix_sp.toarray()