1. sparse模块的官方document地址:http://docs.scipy.org/doc/scipy/reference/sparse.html
 
2. sparse matrix的存储形式有很多种,见此帖子http://blog.csdn.net/anshan1984/article/details/8580952
不同的存储形式在sparse模块中对应如下:
bsr_matrix(arg1[, shape, dtype, copy, blocksize]) Block Sparse Row matrix
coo_matrix(arg1[, shape, dtype, copy]) A sparse matrix in COOrdinate format.
csc_matrix(arg1[, shape, dtype, copy]) Compressed Sparse Column matrix
csr_matrix(arg1[, shape, dtype, copy]) Compressed Sparse Row matrix
dia_matrix(arg1[, shape, dtype, copy]) Sparse matrix with DIAgonal storage
dok_matrix(arg1[, shape, dtype, copy]) Dictionary Of Keys based sparse matrix.
lil_matrix(arg1[, shape, dtype, copy]) Row-based linked list sparse matrix
 
3. 要将普通的非稀疏矩阵变为相应存储形式的稀疏矩阵只要如下:(以coo_matrix为例)
A = coo_matrix([[1,2],[3,4]])
或者按照相应存储形式的要求,喂给参数,构建矩阵,以coo为例:
>>> row  = np.array([0,0,1,3,1,0,0])
>>> col  = np.array([0,2,1,3,1,0,0])
>>> data = np.array([1,1,1,1,1,1,1])
>>> coo_matrix((data, (row,col)), shape=(4,4)).todense()
matrix([[3, 0, 1, 0],
        [0, 2, 0, 0],
        [0, 0, 0, 0],
        [0, 0, 0, 1]])
4. hstack和vstack函数可以将稀疏矩阵横向或者纵向合并,比如:
>>> from scipy.sparse import coo_matrix, vstack
>>> A = coo_matrix([[1,2],[3,4]])
>>> B = coo_matrix([[5,6]])
>>> vstack( [A,B] ).todense()
matrix([[1, 2],
        [3, 4],
        [5, 6]])
但是经过测试,如果A和B的数据形式不一样,不能合并。比如A存储的是字符串,B是数字,那么不能合并。也就是说一个矩阵中的数据格式必须是相同的。
5. diags函数可以建立稀疏的对角矩阵
 
6. 对于大多数(似乎只处了coo之外)稀疏矩阵的存储格式,都可以进行slice操作,比如对于csc,csr。也可以进行arithmetic
operations,矩阵的加减乘除,速度很快。
取矩阵的指定列数,比如取矩阵的第1,3,8列:matrix[:,[0,2,7]]
 
7.sparce矩阵的读取。可以像常规矩阵一样通过下标读取。也可以通过getrow(i),gecol(i)读取特定的列或者特定的行,以及nonzero()读取非零元素的位置。

最新文章

  1. Linux C++ 开发简介
  2. f(n) hdu 2582
  3. Angular JS的依赖注入
  4. 用JAVA写查询一个字符串中是否包含另外一个字符串以及出现的次数
  5. xcode 7及以上版本网络请求不成功的原因
  6. Codeforces 682B New Skateboard(DP)
  7. windows 8 项目
  8. Java线程的生命周期
  9. hibernateUtils
  10. Js 时间与字符串转示例
  11. vml 在IE8 不显示的问题, Group不能用等问题.
  12. jquery 实现层级下拉框联动效果 代码
  13. JAVA语言学校的危险性
  14. PowerDesigner 为sql生成凝视
  15. oracle监听(lsnrctl)详解解读
  16. Storm源码阅读之SpoutOutputCollector
  17. zoj3961(区间问题)
  18. Kubernetes存储之Persistent Volumes简介
  19. C语言_scanf()和getchar() 使用[粗俗易懂]
  20. Mac 中配置Apache

热门文章

  1. yii2之目录解析
  2. atcode062D(预处理&优先队列)
  3. JDBC连接数据以及详细的ResultSet结果集解释
  4. JavaScript进阶 - 第10章 编程挑战
  5. 网站前端开发--css篇
  6. 微信小程序 笔记
  7. 在线获取键盘按键值(ascii码)工具
  8. 洛谷2444(Trie图上dfs判环)
  9. Ubuntu14.04 使用scp远程传输命令进行服务器文件互传
  10. Adobe CC Family (CC 2015) 大师版