python 稀疏存储与计算-scipy.sparse学习笔记(持续更新...)
来源:互联网 发布:mac 免费vnc客户端 编辑:程序博客网 时间:2024/06/16 13:17
官网链接:https://docs.scipy.org/doc/scipy/reference/sparse.html
常用的几种稀疏矩阵存储形式以及适用场景:
1. csr_matrix:
优点:1. 能进行高效的算术运算。如:csr+csr,csr*csr
2. 行切片很高效
3. 矩阵向量内积很快
缺点:1. 列切片很慢 (可以考虑csc)
2. 稀疏结构的改变很昂贵(可以考虑lil,dok)
2. csc_matrix:
优点:1. 同上能进行高效的算术运算
2. 有效的列切片
3. 很快的矩阵向量内积(csr,bsr更快)
缺点:1. 行切片慢(考虑csr)
2. 稀疏结构的改变很昂贵(考虑lil,dok)
3. coo_matrix:
优点:1. 转换成其它存储格式很快捷简便
2. 转换成csr/csc很快
3. 允许重复的索引(例如在1行1列处存了值2.0,又在1行1列处存了值3.0,则转换成其它矩阵时就是
2.0+3.0=5.0)
缺点:1. 不直接支持切片
2. 不能直接进行算术计算
coo_matrix构建稀疏矩阵非常快捷,实际中可以转换成csr/csc形式进行切片,算术计算与向量内积计算。
4. bsr_matrix:
很类似于csr,更适合于矩阵的某些子矩阵很多值,在某些情况下比csr和csc计算更高效。
5. dia_matrix:
对角线存储方式,0就在主对角线,-1在主对角线下方的第一条对角线。具体见官网例子。
6. dok_matrix:
优点:依靠键的字典构建矩阵,对于递增的构建稀疏矩阵很高效,比如定义该矩阵后,想进行每行每列更新值,可用该矩阵。当访问某个单
元,只需要O(1)
缺点:不允许重复索引(coo中适用),但可以很高效的转换成coo后进行重复索引
7. lil_matrix:
优点: 1. 支持灵活的切片
2. 转换成其它存储方式很高效
3. 适合递增的构建成矩阵
缺点:1. lil+lil等算术运算很慢(可以考虑csr,csc)
2. 列切片很慢(可以考虑csc)
3. 矩阵向量内积很慢(考虑csr,csc)
4. 当矩阵很大时,考虑用coo
稀疏矩阵计算中注意事项:
1.matrix.multiply():
适合矩阵对应索引元素乘,即结果的每个元素sij=xij*yij,需区别它与点乘。
有两个好处:a.该方法适合广播,即矩阵乘以一个行向量可以广播到该矩阵的每一行。
b.该方法计算后对于计算后矩阵中元素为0的自动忽略。比如a矩阵的第0行0列为1,b矩阵的第0行0列为0,则乘了之 后第0行0列存储时不会有值。
c.如果是稀疏矩阵*稀疏矩阵,则为矩阵点乘,而密集矩阵*密集矩阵则是对应元素相乘
- python 稀疏存储与计算-scipy.sparse学习笔记(持续更新...)
- Python SciPy Sparse模块学习笔记
- Python SciPy Sparse模块学习笔记
- python学习笔记(3)----scipy数值计算
- SciPy教程 - 稀疏矩阵库scipy.sparse
- Python学习笔记(持续更新)
- python学习笔记(持续更新)
- scipy.sparse学习
- Python笔记(持续更新)
- Python开发实战学习笔记(持续更新)
- python 学习笔记 持续更新中
- Python学习笔记(持续更新中)
- 《深度学习》学习笔记(一):稀疏自编码器(Sparse Autoencoder)
- 游戏开发流程与思想学习笔记(持续更新)
- 吴恩达 《神经网络与深度学习》笔记(持续更新)
- UFLDL 学习笔记——稀疏自动编码机(sparse autoencoder)
- python的scipy学习笔记
- python+opencv学习笔记(一)python+numpy+scipy+opencv+contrib的安装与配置
- 架构探险 代码逻辑
- 欢迎使用CSDN-markdown编辑器
- 关于交叉熵和sigmoid函数的组合
- Canal简介及配置说明
- 算法学习笔记(roman&integer)
- python 稀疏存储与计算-scipy.sparse学习笔记(持续更新...)
- ASP.Net请求处理机制初步探索之旅
- js将时间戳转换为时间
- ReentrantLock
- 关于angular2路由传参
- [SDUT](2072)删数问题 ---贪心
- c++ lambda表达式
- angular1组件传递方法调用错误Cannot use 'in' operator to search for 'vm' in XXXX
- 做毕设(一)——thymeleaf取值