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.如果是稀疏矩阵*稀疏矩阵,则为矩阵点乘,而密集矩阵*密集矩阵则是对应元素相乘                                            


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 菜地里的蜗牛怎么办 菜地里有蜗牛怎么办 菜地里有虫子怎么办 心情焦躁多想怎么办 打胎后心情焦躁怎么办 心情不好想发火怎么办 孩子心烦气燥怎么办 心烦气燥睡不着怎么办 心烦心燥睡不着怎么办 小孩心烦气燥怎么办 情绪总是很烦躁怎么办 情绪不好爱生气怎么办 心里每天烦躁该怎么办 心情低落想哭怎么办 心老是烦躁急怎么办 易烦躁睡眠不好怎么办 天气热心情烦躁怎么办 嘴巴里有溃疡怎么办 嘴巴里面反复烂怎么办 多处口腔溃烂怎么办 口腔黏膜破了怎么办 有鼻炎鼻子痒怎么办 感冒就清鼻涕怎么办 怀孕感冒流鼻涕打喷嚏怎么办 过敏性鼻炎打喷嚏流鼻涕怎么办 宝宝黄鼻涕鼻塞怎么办 鼻炎总是打喷嚏流鼻涕怎么办 新生儿流黄鼻涕怎么办 感冒鼻塞流鼻涕喷嚏怎么办 宝宝总是打喷嚏流鼻涕怎么办 不停的打喷嚏流鼻涕怎么办 宝宝不停打喷嚏流鼻涕怎么办 孕妇感冒流鼻涕打喷嚏怎么办 孕妇感冒咳嗽流鼻涕怎么办 鼻子痒流鼻涕流眼泪怎么办 天冷鼻子流鼻涕怎么办 感冒流水样鼻涕怎么办 一直有清水鼻涕怎么办 孩子总打喷嚏鼻塞怎么办 4岁儿童流鼻涕怎么办 孕妇清鼻涕不停怎么办