sparse matrix(稀疏矩阵)
2016-12-05 14:54
134 查看
sparse matrix(稀疏矩阵)
下文大致参考sparse_matrix-维基百科最近在接触sklearn 进行自然语言处理的时候,发现做类似tf-idf等等这样的算法时候,很多时候自然语言得出来的矩阵里面,是含有很多个0这样的元素的。这时候如果用一个大矩阵去处理数据,很容易造成内存不足(我处理100多万份短文本,分词后转化为矩阵明显是不足的),经过我研究,sklearn是默认使用一种sparse matrix来降低内存的使用量。
sparse matrix大多使用在一个含有很多0的矩阵中,在这样的矩阵中转化为sparse matrix是十分节省内存的。sparse matrix只记录不含0的矩阵元素。
sparse matrix 定义
一个m*n的矩阵M,可以直接用3个一维矩阵矩阵表示(A, IA, JA),现在用NNA标记为M矩阵中不是0的数量1.一维矩阵A长度等于NNA,矩阵A保存着所有M矩阵中非0元素,顺序按照M矩阵从左到右,从上到下顺序。
2.一维矩阵IA
- IA[0]=0
- IA[i] = IA[i-1]+在i-1行上所有非0元素的个数
3.一维矩阵JA,对应A矩阵中每个元素所对应行的列号
例如:
是一个4x4的带有4个非0的矩阵
这个矩阵能用下列3个一维矩阵表示
A = [ 5 8 3 6 ]
IA = [ 0 0 2 3 4 ]
JA = [ 0 1 2 1 ]
相关文章推荐
- 稀疏表达:向量、矩阵与张量(中)
- 【数据结构】稀疏结构及稀疏矩阵的压缩存储,矩阵的(快速)转置
- python常见需注意操作——稀疏矩阵内元素的放缩
- 稀疏矩阵的输入与输出
- 数据结构进阶(二)矩阵(稀疏矩阵)的压缩存储
- 数据结构-稀疏矩阵和树的程序
- (数据结构第五章)稀疏矩阵三元顺序表存储
- 第八周项目3-稀疏矩阵的三元组表示的实现及应用(2)
- Sparse Matrix(稀疏矩阵三元组表示,三元组形式的矩阵转置)
- 稀疏矩阵
- 稀疏矩阵利用三元组相乘(c语言)
- 稀疏矩阵
- 压缩感知-有关稀疏矩阵
- 稀疏矩阵(快速定位转置)
- 稀疏表达:向量、矩阵与张量(上)
- 7. 稀疏矩阵的乘法运算
- SciPy教程 - 稀疏矩阵库scipy.sparse
- 已知一稀疏矩阵的三元组表, 求该矩阵转置矩阵的三元组表
- 【刘庆源码共享】稀疏线性系统求解算法MGMRES(m) 之 矩阵类(C++)
- 稀疏矩阵求最小或最大的K个特征值及其特征向量