美文网首页嵌牛IT观察
python模块scipy中的稀疏矩阵

python模块scipy中的稀疏矩阵

作者: mi_lan | 来源:发表于2019-12-10 21:27 被阅读0次

姓名:张国帅

学号:19021110506

【嵌牛导读】 本文主要围绕python模块scipy中的稀疏矩阵展开

【嵌牛鼻子】scipy 稀疏矩阵

【嵌牛提问】python模块scipy中的稀疏矩阵是如何存储的呢?

【嵌牛正文】

参考文章:https://www.cnblogs.com/zhangchaoyang/articles/5483453.html

一:dok_matrix

继承自dict,key是(row,col)构成的二元组,value是非0元素。

优点:

1.非常高效地添加、删除、查找元素

2.转换成coo_matrix很快

缺点:

1.继承了dict的缺点,即内存开销大

2.不能有重复的(row,col)

二:coo_matrix

coo_matrix

如上图,构造coo_matrix需要3个等长的数组,values数组存放矩阵中的非0元素,row indices存放非0元素的行坐标,column indices存放非0元素的列坐标。

优点:

1.容易构造

2.可以快速地转换成其他形式的稀疏矩阵

3.支持相同的(row,col)坐标上存放多个值

缺点:

1.构建完成后不允许再插入或删除元素

2.不能直接进行科学计算和切片操作

三:csr_matrix

csr_matrix

csr_matrix同样由3个数组组成,values存储非0元素,column indices存储非0元素的列坐标,row offsets依次存储每行的首元素在values中的坐标,如果某行全是0则对应的row offsets值为-1。

优点:

1.高效地按行切片

2.快速地计算矩阵与向量的内积

3.高效地进行矩阵的算术运行,CSR + CSR、CSR * CSR等

缺点:

1.按列切片很慢(考虑CSC)

2.一旦构建完成后,再往里面添加或删除元素成本很高

四:dia_matrix

dia_matrix

对角线存储法,按对角线方式存,列代表对角线,行代表行。省略全零的对角线。(从左下往右上开始:第一个对角线是零忽略,第二个对角线是5,6,第三个对角线是零忽略,第四个对角线是1,2,3,4,第五个对角线是7,8,9,第六第七个对角线忽略)。

这里行对应行,所以5和6是分别在第三行第四行的,前面补上无效元素*。如果对角线中间有0,存的时候也需要补0。

适用场景:

如果原始矩阵就是一个对角性很好的矩阵那压缩率会非常高,比如下图,但是如果是随机的那效率会非常糟糕。

相关文章

  • python模块scipy中的稀疏矩阵

    姓名:张国帅 学号:19021110506 【嵌牛导读】 本文主要围绕python模块scipy中的稀疏矩阵展开 ...

  • csc_matrix

    许多同学可能在使用Python进行科学计算时用过稀疏矩阵的构造,而python的科学计算包scipy.sparse...

  • sparse scipy 从稀疏矩阵中选取某些指定列构成新的稀疏

    sparse scipy 从稀疏矩阵中选取某些指定列构成新的稀疏矩阵主要想法:1.getcol(i)获得指定行2....

  • 稀疏矩阵 scipy.sparse

    CSR: row offset : 最后一位是非0元素个数。其他从前至后依次为matrix中每行第一个非0元素的在...

  • Python-Scipy进行数值积分

    Python的Scipy模块中拥有大量的数值计算函数,方便我们快速进行数值计算。 Scipy中的integrate...

  • Python实现概率分布

    1、工具准备 安装python的科学计算包scipy 在python的科学计算包scipy的stats模块计算出常...

  • 安装Scipy库

    Scipy库在Numpy的基础上增加了众多的数学计算。例如常微分方程数值求解,稀疏矩阵等。 但因Scipy库的安装...

  • [python][机器学习][scipy]使用稀疏矩阵实现卷积运

    最后一次更新日期: 2019/3/21 此篇文章提供一个将scipy库的稀疏矩阵运用于卷积运算上,以期在不增加过多...

  • MATLAB稀疏矩阵

    7稀疏矩阵 稀疏矩阵是一种特殊类型的矩阵,即矩阵中包括较多的零元素。对于稀疏矩阵的这种特性,在MATLAB中可以只...

  • 机器学习中的稀疏矩阵

    什么是稀疏矩阵? 大多数元素都是0的矩阵称为稀疏矩阵,否则称为稠密矩阵。规模巨大的稀疏矩阵在应用机器学习中很常见,...

网友评论

    本文标题:python模块scipy中的稀疏矩阵

    本文链接:https://www.haomeiwen.com/subject/kihngctx.html