Scipy 基础 —— 稀疏矩阵
稀疏矩阵,也即仅存储非零元素,既提升了矩阵操作的效率,也节省了内存。
稀疏矩阵的存储格式(Sparse Matrix Storage Formats)
很多语言、平台都支持稀疏矩阵这一数据存储结构,尽管语言、平台各异,但是多数采用相同的基本技术,即存储矩阵所有的非零元素到一个线性数组中,并提供辅助数组来描述原数组中非零元素的位置。
以下是几种常见的稀疏矩阵存储格式:
(1)Coordinate Format (COO)
Scipy 支持
不同的存储形式在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
构建一个 COO format 的稀疏矩阵:
>>>
>>> from scipy import sparse
>>> from numpy import array
>>> I = array([0,3,1,0])
>>> J = array([0,3,1,2])
>>> V = array([4,5,7,9])
>>> A = sparse.coo_matrix((V,(I,J)),shape=(4,4))
>>> A.todense()
matrix([[4, 0, 9, 0],[0, 7, 0, 0],[0, 0, 0, 0],[0, 0, 0, 5]])
sparse ⇒ dense
todense()方法实现稀疏向密集型的转换;
references
[1] Python SciPy Sparse模块学习笔记
[2] Sparse matrices (scipy.sparse)
[3] 稀疏矩阵的存储格式(Sparse Matrix Storage Formats)
Scipy 基础 —— 稀疏矩阵相关推荐
- Python学习-Scipy库稀疏矩阵的建立(面向列的稀疏矩阵、基于坐标格式的稀疏矩阵)
Python学习-Scipy库稀疏矩阵的建立 稀疏矩阵指在矩阵中值为0的元素的数量远远多于非0值的矩阵 (非0元素总数/所有元素总数<=0.05) 稀疏矩阵的实现对象: csc_matrix() ...
- python中的scipy基础知识_python中SciPy是什么?
python中Numpy常用于计算二维数组计算,而python的另一个库SciPy库与Numpy有着密切的关系,是需要通过Numpy为基础,同时也是通过Numpy数据来操控科学计算.常见的是插值运算. ...
- python中的scipy基础知识_Python机器学习(五十二)SciPy 基础功能
默认情况下,所有NumPy函数都可以在SciPy(命名空间)中使用.当导入SciPy时,不需要显式地导入NumPy函数.NumPy的主要对象是n次多维数组ndarray,SciPy构建在ndarray ...
- python中的scipy基础知识_python3 scipy 入门
正态分布: ''' Scipy中的stats模块包含了多种常用的数据统计函数,包括连续和离散两种随机变量. 对于连续随机变量,可有如下操作: rvs:随机变量进行取值,通过size给定大小 pdf:概 ...
- python求数值积分_Python大数据处理-Scipy基础入门,数值积分计算
温馨提示:阅读本文只需要1分钟,您就可以掌握Scipy进行定积分计算.二重.三重积分.多重积分的计算.继续承接上文学习Scipy科学数据处理,为我们后面Python大数据处理开发打基础.今天主要学习分 ...
- 实用的 Python 之 feedparser
feedparser 号称是一个 universal feed parser,使用它我们可轻松地实现从任何 RSS 或 Atom 订阅源得到标题.链接和文章的条目了. >>> imp ...
- 【Python基础】科学计算库Scipy简易入门
0.导语 Scipy是一个用于数学.科学.工程领域的常用软件包,可以处理插值.积分.优化.图像处理.常微分方程数值解的求解.信号处理等问题.它用于有效计算Numpy矩阵,使Numpy和Scipy协同工 ...
- 如何用三元组表表示下列稀疏矩阵_盘一盘 Python 系列特别篇21之:SciPy 稀疏矩阵...
引言 和稠密矩阵相比,稀疏矩阵的最大好处就是节省大量的内存空间来储存零.稀疏矩阵本质上还是矩阵,只不过多数位置是空的,那么存储所有的 0 非常浪费.稀疏矩阵的存储机制有很多种 (列出常用的五种): C ...
- 【机器学习基础】Scipy(科学计算库) 手把手手把手
0.导语 Scipy是一个用于数学.科学.工程领域的常用软件包,可以处理插值.积分.优化.图像处理.常微分方程数值解的求解.信号处理等问题.它用于有效计算Numpy矩阵,使Numpy和Scipy协同工 ...
最新文章
- 计算机视觉方向简介 | 单目微运动生成深度图
- klib库下的kroundup32(二进制的四舍五入)算法
- Boost:bind绑定右值的测试程序
- 计组-I/O系统的基本概念
- 关于驰骋表单引擎中字段扩展设置对文本框Pop窗体返回值的升级说明 2012/11/13...
- 百度高级Java三面题目!涵盖JVM +Java锁+分布式等
- 校友会2019中国大学计算机,校友会2019中国计算机类一流专业排名,清华大学排名第一...
- 数字能排序字符串不能排序_动图解说堆排序原理,让体育生也能看得明白
- python字符串相加_谁说python字符串相加效率低
- PyTorch 深度学习:37分钟快速入门——FCN 做语义分割
- web测试之性能测试
- Git commit --amend
- 将地址转化为高德经纬度坐标
- 李开复--生命是最严厉的导师
- c++:从单例到内存屏障
- 如何移除Office 365标题栏上的账号信息
- 调试数字音量等级的方法
- 20210904英雄联盟记录
- win10访问不了SAMBA
- oracle 百分位数,Oracle分析函数PERCENTILE_CONT
热门文章
- Java-旋转字符串
- CDH中impala 的查询返回部分结果。 已超出 199 流查询的时间序列流限制。
- hive中统计某列数组的元素个数
- html 浏览器文档模式,调整:浏览器模式lE8十文档模式8是怎样操作
- C++ lambda表达式 std::function 深层详解
- jmter测试jmeter参数化(必须掌握)
- android edittext换行位置不变,Android EditText使用自动换行但无硬性返回
- python导入xlsx转为csv_Python 拆分工作表为单个工作簿
- configure: error: cannot guess build type; you must specify one
- 高性能加速深度学习算法