• COO 与 CSR 稀疏矩阵存取格式;


    稀疏矩阵是指矩阵中元素大部分是0的矩阵,事实上,实际问题中大规模矩阵基本上是稀疏矩阵,很多稀疏度在90%甚至99%以上;因此我们需要有高效的稀疏矩阵存储格式。

    本文参考了 https://www.cnblogs.com/xbinworld/p/4273506.html 此文章,对coo 和 csr 两种格式,进行摘录,进行备忘;

    • COO Coordinate (以坐标的形式进行表示) 

     这是最简单的一种格式,每一个元素需要用一个三元组来表示,分别是(行号,列号,数值),对应上图右边的一列。这种方式简单,但是记录单信息多(行列),每个三元组自己可以定位,因此空间不是最优。

    • Compressed Sparse Row (CSR) (以行压缩的形式进行表示)

    CSR是比较标准的一种,也需要三类数据来表达:数值,列号,以及行偏移。CSR不是三元组,而是整体的编码方式。数值和列号与COO一致,表示一个元素以及其列号,行偏移表示某一行的第一个元素在values里面的起始偏移位置。如上图中,第一行元素1是0偏移,第二行元素2是2偏移,第三行元素5是4偏移,第4行元素6是7偏移。在行偏移的最后补上矩阵总的元素个数,本例中是9。

    • Compressed Sparse Column (CSC) (以列压缩的形式进行表示)

    CSC是和CSR相对应的一种方式,即按列压缩的意思。

    以上图中矩阵为例:

    Values:        [1 5 7 2 6 8 3 9 4]

    Row Indices:[0 2 0 1 3 1 2 2 3]

    Column Offsets:[0 2 5 7 9]

    资源来源自网络,保持更新;更多内容请关注 cnblogs.com/xuyaowen; 

    其他参考链接:

    https://blog.csdn.net/gaoborl/article/details/82869858 

    https://www.cnblogs.com/xbinworld/p/4273506.html 

    https://en.wikipedia.org/wiki/Sparse_matrix (上面对稀疏矩阵的格式,有较为详细的说明)在Storing a sparse matrix 部分;

  • 相关阅读:
    前端性能优化
    CSS实现文字在容器中对齐方式
    spring里面的context:component-scan
    Builder模式
    idea无法新建maven项目
    Java-位运算
    pg数据库数据表异常挂起
    Java-多线程与单例
    Java-数据结构之二叉树练习
    Java-JNA使用心得
  • 原文地址:https://www.cnblogs.com/xuyaowen/p/coo-csr-csc.html
Copyright © 2020-2023  润新知