scipy稀疏矩阵
那些零元素数目远远多于非零元素数目,并且非零元素的分布没有规律的矩阵称为稀疏矩阵(sparse matrix)。
不同类型的矩阵有不同的压缩方式,比如对角矩阵只存储对角元素即可。要想充分压缩,就要找到数据的特点。
压缩算法也有很多种,如:音频压缩算法、视频压缩算法、通用压缩算法。不同压缩算法有不同的使用领域,一般专用领域的压缩算法效率高于通用压缩算法。因为专用领域压缩算法抓住了数据的特点。
本文主要介绍scipy提供的八种稀疏矩阵存储格式。
坐标存储 Coordinate Format (COO)
它使用三个数组进行存储:rows、columns、values,三个数组长度相等。分别表示数组元素的行、列、值。
Diagonal Storage Format (DIA)
对角线矩阵,它由两个数组进行存储:values是一个二维数组,distance是一个一维数组,distance[i]表示对角线相对主对角线的偏移量。values[i][j]表示第i行,相对主对角线偏离distance[j]的那条对角线上的数值。
Compressed Sparse Row Format (CSR)
压缩稀疏行矩阵,它由values、columns、rows三个数组组成。values是一个一维数组,columns是一个和values等长的一维数组,表示values中每个元素所在的列。rows是一个一维数组,rows[i]表示第i行元素在columns和values中的起始位置。rows数组的长度等于行数+1。
CSR的五种构造函数:
- csr_matrix(D):由稠密矩阵D构造稀疏矩阵
- csr_matrix(S):由稀疏矩阵S构造系数矩阵,相当于S.tocsr(),S是本文的其它类型的稀疏矩阵
- csr_matrix((M, N), [dtype]):创建一个M行N列的空的稀疏矩阵
- csr_matrix((data, (row_ind, col_ind)), [shape=(M, N)]):创建一个M行、N列的系数矩阵,稀疏矩阵的数据由三元组指定
- csr_matrix((data, indices, indptr), [shape=(M, N)]):根据CSR最直接的参数初始化CSR
Compressed Sparse Column Format (CSC)
压缩稀疏列矩阵,和CSR一样,区别在于它按照列来存储。
Skyline Storage Format
三角矩阵压缩
Block Compressed Sparse Row Format (BSR)
块矩阵压缩
ELLPACK (ELL)
存储values和offset两个矩阵,values[i][j]元素在第i行的偏移用offset[i][j]来表示。
Hybrid (HYB)
混合压缩矩阵,融合了ELL和COO
参考资料
https://blog.csdn.net/pipisorry/article/details/41762945
scipy稀疏矩阵的更多相关文章
- Python数据分析----scipy稀疏矩阵
一.sparse模块: python中scipy模块中,有一个模块叫sparse模块,就是专门为了解决稀疏矩阵而生.本文的大部分内容,其实就是基于sparse模块而来的 导入模块:from scipy ...
- SciPy笔记
一.简介 SciPy 是一个开源的 Python 算法库和数学工具包.Scipy 是基于 Numpy 的科学计算库,用于数学.科学.工程学等领域,很多有一些高阶抽象和物理模型需要使用 Scipy.Sc ...
- Python机器学习入门
# NumPy Python科学计算基础包 import numpy as np # 导入numpy库并起别名为npnumpy_array = np.array([[1,3,5],[2,4,6]])p ...
- Python Machine Learning: Scikit-Learn Tutorial
这是一篇翻译的博客,原文链接在这里.这是我看的为数不多的介绍scikit-learn简介而全面的文章,特别适合入门.我这里把这篇文章翻译一下,英语好的同学可以直接看原文. 大部分喜欢用Python来学 ...
- Hands on Machine Learning with sklearn and TensorFlow —— 一个完整的机器学习项目(加州房地产)
数据集地址:https://github.com/ageron/handson-ml/tree/master/datasets 先行知识准备:NumPy,Pandas,Matplotlib的模块使用 ...
- sklearn快速入门
原创博文,转载请注明出处. (为了节约空间,打印结果常用"..."表示省略) 一.加载数据集 1. 加载sklearn自带的数据集 scikit-learn有一些自带的标准数据集, ...
- 4.2 Scikit-Learn简介(机器学习篇)
目录 第四章 机器学习 4.1 机器学习简介 4.1.1 机器学习分类 4.2 Scikit-Learn简介 4.2.1 Scikit-Learn的数据表示 4.2.2 Scikit-Learn的评估 ...
- sklearn的train_test_split()各函数参数含义解释(非常全)
sklearn之train_test_split()函数各参数含义(非常全) 在机器学习中,我们通常将原始数据按照比例分割为“测试集”和“训练集”,从 sklearn.model_selection ...
- Sklearn 速查
## 版权所有,转帖注明出处 章节 SciKit-Learn 加载数据集 SciKit-Learn 数据集基本信息 SciKit-Learn 使用matplotlib可视化数据 SciKit-Lear ...
随机推荐
- Validate Binary Search Tree leetcode java
题目: Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is define ...
- diy作品——视觉追踪小车介绍
最近刚刚完毕了一个追踪功能的小车.大体功能例如以下:小车能通过网线给电脑传图(抱歉.临时没搞wifi驱动).并在电脑端通过鼠标选中待跟踪的目标,然后小车就開始追踪.由于追踪框有缩放功能.所以也能推断物 ...
- 用LSTM生成武侠人名
http://magicly.me/2017/04/07/rnn-lstm-generate-name/?utm_source=tuicool&utm_medium=referral 之前翻译 ...
- Solr搭建真实项目
在经过solr5.4.1 quick start 的学习后.我们要搭建真实的项目了 1.启动项目 bin/solr start 2.创建core bin/solr create -c pms 3.为 ...
- C++ 构造与析构的执行顺序
1.代码如下:class A{public: int _Id; A():_Id(0) { printf("A[%d]\n",_Id); } ~A() { printf(" ...
- FastDFS tracker storage 的工作原理及流程
FastDFS tracker storage 的工作原理及流程 2013 年 3 月 11 日 – 09:22 | 1,409 views | 收藏 (No Ratings Yet) FastDF ...
- WIN10 64位系统 如何安装.NET Framwork3.5
把SXS文件夹复制到C盘根目录,然后以管理员身份运行CMD,大概2分钟能完成,然后这个SXS文件夹就可以删了
- Office办公 如何给WPS 的文字添加黑框
双击文本框,弹出的设置对象格式中选择线条颜色和样式即可 要做成虚线框也是可以的 弄完之后字体也可以改大一点 还有一种需要时文本不在黑框的中间位置,比如顶部的某个位置,可以设置文字锁定点是顶 ...
- 第九周(1) Word邮件合并2
第九周(1) Word邮件合并2 教学时间 2013-4-22 教学课时 2 教案序号 15 教学目标 1.进一步掌握邮件合并的技巧和方法.2.利用邮件合并制作准考证.3.掌握在同一页生成多个记录的方 ...
- Linux Centos7中MySql安装
(1) 安装Mysql5.7: 执行命令:rpm -ivh http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql-co ...