当前位置:首页 » 存储配置 » 稀疏数据存储

稀疏数据存储

发布时间: 2023-05-13 05:20:28

1. 什么是数据稀疏

数锋饥烂据稀疏?我只知道OI图论中有稀疏矩阵,就是有银漏很多点,但是边不是很多的那中,要用邻肢简接链表来存储提高效率

2. 对稀疏矩阵进行压缩存储的目的是什么

对稀疏矩阵进行压缩存储目的是节省存储空间。

存储矩阵的一般方法是采用二维数组,其优点是可以随机地访问每一个元素,因而能够较容易地实现矩阵的各种运算。

但对于稀疏矩阵而言,若用二维数组来表示,会重复存储了很多个0了,浪费空间,而且要花费时间来进行零元素的无效计算。所以必须考虑对稀疏矩阵进行压缩存储。



(2)稀疏数据存储扩展阅读

优点

稀疏矩阵的计算速度更快,因为MATLAB只对非零元素进行操作,这是稀疏矩阵的一个突出的优点。假设矩阵A,B中的矩阵一样,计算2*A需要一百万次的浮点运算,而计算2*B只需要2000次浮点运算。

因为MATLAB不能自动创建稀疏矩阵,所以要用特殊的命令来得到稀疏矩阵。算术和逻辑运算都适用于稀疏矩阵。对于一个用二维数组存储的稀疏矩阵Amn,如果假设存储每个数组元素需要L个字节,那么存储整个矩阵需要m*n*L个字节。

3. 稀疏矩阵的压缩存储只需要存储什么

非零元素。

对于一个用二维数组存储的稀疏矩阵Amn,如果假设存储每个数组元素需要L个字节,那么存储整个矩阵需要m*n*L个字节。但是,这些存储空间的大部分存放的是0元素,从而造成大量的空间浪费。为了节省存储空间,可以只存储其中的非0元素。

(3)稀疏数据存储扩展阅读

稀疏矩阵算法的最大特点是通过只存储和处理非零元素从而大幅度降低存储空间需求以及计算复杂度,代价则是必须使用专门的稀疏矩阵压缩存储数据结构。稀疏矩阵算法是典型的不规则算法,计算访存比很低,并且计算过程中的访存轨迹与稀疏矩阵的稀疏结构相关。

4. 数据结构 稀疏矩阵一般的压缩存储方法有哪几种

来自 严蔚敏《型腊数据缺中结构》
稀疏伏租山矩阵的压缩方法主要有:
1:三元组顺序表 (行下标,列下标,值)
2:行逻辑链接的顺序表。
3:十字链表。

5. 设有一稀疏图G,则G采用什么存储较省空间

G采用邻接表存储较省空间。

邻接表,存储方法跟树的孩子链表示法相类似,是一种顺序分配和链式分配相结合的存储结构。如这个表头结点所对应的顶点存在相邻顶点,则把相邻顶点依次存放于表头结点所指向的单向链表中。

对于无向图来说,使用邻接表进行存储也会出现数据冗余,表头结点A所指链表中存在一个指向C的表结点的同时,表头结点C所指链表也会存在一个指向A的表结点。

(5)稀疏数据存储扩展阅读:

表示法

n个顶点e条边的无向图的邻接表表示中有n个顶点表结点和2e个边表结点。(换句话说,每条边(i,j)在邻接表 中出现两次:一次在关于i的邻接表中,另一次在关于j的邻接表中)。

对于有向图,vi的邻接表中每个表结点都对应于以vi为始点射出的一条边。因此,将有向图的邻接表称为出边表。对于无向图来说,使用邻接表进行存储也会出现数据冗余,表头结点A所指链表中存在一个指向C的表结点的同时,表头结点C所指链表也会存在一个指向A的表结点。

6. 数据结构的几种存储方式

数据的存储结构是数据结构的一个重要内容。在计算机中,数据的存储结构可以采取如下四中方法来表现。

1) 顺序存储方式

简单的说,顺序存储方式就是在一块连续的存储区域

一个接着一个的存放数据。顺序存储方式把逻辑上相连的结点存储在物理位置上相邻的存储单元里,结点间的逻辑关系由存储单元的邻接挂安息来体现。顺序存储方式也称为顺序存储结构( sequential

storage structure ),一般采用数组或者结构数组来描述。

线性存储方式主要用于线性逻辑结构的数据存放,而对于图和树等非线性逻辑结构则不适用。

2) 链接存储方式

链接存储方式比较灵活,其不要求逻辑上相邻的结点

在物理位置上相邻,结点间的逻辑关系由附加的引用字段表示。一个结点的引用字段往往指导下一个结点的存放位置。

链接存储方式也称为链接式存储结构( Linked

Storage Structure ),一般在原数据项中增加应用类型来表示结点之间的位置关系。

3) 索引存储方式

索引存储方式是采用附加索引表的方式来存储结点信

息的一种存储方式。索引表由若干个索引项组成。索引存储方式中索引项的一般形式为:(关键字、地址)。其中,关键字是能够唯一标识一个结点的数据项。

索引存储方式还可以细分为如下两类:

* 稠密索引( Dense Index ) : 这种方式中每个结点在索引表中都有一个索引项。其中,索引项的地址指示结点所在的的存储位置;

* 稀疏索引( Spare Index ):这种方式中一组结点在索引表中只对应一个索引项。其中,索引项的地址指示一组结点的起始存储位置。

4) 散列存储方式

散列存储方式是根据结点的关键字直接计算出该结点

的存储地址的一种存储的方式。

在实际应用中,往往需要根据具体数据结构来决定采用哪一种存储方式。同一逻辑结构采用不同额存储方法,可以得到不同的存储结构。而且这四种节本存储方法,既可以单独使用,也可以组合起来对数据结构进行存储描述。

欢迎加入技术学习 QQ 群: 364595326

7. 稀疏矩阵定义以及存储格式(COO,CSR,CSC)

网络:在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵;与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵。定义非零元素的总数比上矩阵所有元素的总数为矩阵的稠密度。 简单来说,稀疏矩阵就是绝大部分都是0的矩阵 ,只包含很少的非零值.

比如,

上述稀疏矩阵非零元素有9个,26个零值.稀疏性是74%.

稀疏矩阵因为绝大部分都是0元素,如果我们仍然按照普通方式存储,无疑会 浪费很多空间 ;同时如果进行运算时,0元素对最终结果也没有帮助, 增加了许多无效计算 . 因此,我们需要设计出新的存储方式,或者说数据结构来存储稀疏矩阵.比较常见的有:

对于稀疏矩阵的存储,为了达到压缩的目的(节省存储空间),只存储非0元素值,但是也要保留非零元素的位置,方便恢复.所以,我们存储时不仅存储非零元素值,同时存储其坐标位置(row,column). 针对这两者的存储,会出现不同的设计方案.这里主要介绍COO,CSR和CSC存储格式.

我们使用三个数组row,column和data分别用来存储非零元素坐标的row_index,col_index,以及数值.比如:

NNO:The number of nonzero.矩阵非零元素个数. 三个数组的长度都是NNO.data[i]在原稀疏矩阵中的坐标为(row[i],col[i]]).

可以发现,这种存储方式中,row数组和column数组中有一定的重复元素.我们是否可以针对这个冗余特性进一步进行压缩?之后出现CSR,CSC,分别是对row数组和column数组进行了压缩.

对COO稀疏矩阵存储格式的三个数组中的row数组进行压缩.其他两个数组保持不变;三个数组分别是row_ptr,columns和data.其中columns和data数组长度均为NNO(矩阵的非零元素个数). 如何对COO的row进行压缩?

row_ptr存储的是每行的第一个非零元素距离稀疏矩阵第一个元素的偏移位置;

由row_ptr我们可以知道每行非零元素在data中的index范围.第i行的非零元素为data[row_ptr[i]:row_ptr[i+1]],对data数组的切片,不包含data[row_ptr[i+1]];同时第i行非零元素的col坐标分别为columns[row_ptr[i]:row_ptr[i+1]];对data和columns的访问相似,index是相同的.

如上图中,第0行非零元素在data中是data[0:2],就是1,7;列坐标为columns[0:2],就是0,1,第1行非零元素为data[2:4],有两个元素2和8,列坐标分别为columns[2:4],1和2.

方便进行行操作.

和CSR类似.只不过对列进行压缩,row和data保持不变.

方便进行列操作.

8. 稀疏矩阵一般的压缩存储方法有两种

分别是三元组和十字链表。

三元组是指形如((x,y),z)的集合(这就是说,三元组是这样的偶,其第一个射影亦是一个偶),常简记为(x,y,z)。

三元组是计算机专业的一门公共基础课程——数据结构里的概念。主要是用来存储稀疏矩阵的一种压缩方式,也叫三元组表。假设以顺序存储结构来表示三元组表(triple table),则得到稀疏矩阵的一种压缩存储方式,即三元组顺序表,简称三元组表。

十字链表(Orthogonal List)是有向图的另一种链式存储结构。该结构可以看成是将有向图的邻接表和逆邻接表结合起来得到的。用十字链表来存储有向图,可以达到高效的存取效果。同时,代码的可读性也会得到提升。

拓展资料:

十字链表(Orthogonal List)是有向图的另一种链式存储结构。可以看成是将有向图的邻接表和逆邻接表结合起来得到的一种链表。在十字链表中,对应于有向图中每一条弧都有一个结点,对应于每个定顶点也有一个结点。

十字链表之于有向图,类似于邻接表之于无向图。

也可以理解为 将行的单链表和列的单链表结合起来存储稀疏矩阵称为十字链表, 每个节点表示一个非零元素。

三元组解释:

1、所谓“三元组”是指图形的几何元素构成、图线间的拓扑关系和尺寸约束。如果一组图形的前二元相同而只是尺寸大小不同,则这组图形构成一族形状相同的系列化图形。

2、把组成一个元素的三个数称为三元组。一个三元组包含以下三部分的内容SDO_STARTING_OFFSET表明每个几何元素的第一个坐标在SDO_ORDINATES数组中的存储位置。

3、…Mt:N2)的表示称为三元组...…Mt称为标号,N1、N2为结点R为关系。当n≠0时,称Li为对结点N1的修饰。t≠0时,称Mj为对结点N2的修饰。

参考资料:网络:十字链表

网络:三元组

9. 稀疏(sparse)在机器学习中很重要吗

我来说说吧:

  1. 矩阵的稀疏性你应该知道吧,稀疏矩阵中包含大量的0。什么样的矩阵最好?当然握困世是0越多越好段肢的矩阵。

  2. 稀疏性对数据存储,数据压尺桐缩有极大的便利。

  3. 稀疏性对特征提取,降维等都有极好的应用。

10. 数据稀疏的准确概念

数据库中,稀疏数据是指在二维表中含有大量空值的数据;即稀疏数据是指,在数据集中绝大多数数值缺失或者为零的数据。稀疏数据绝对不是无用数据,只不过是信息不完全,通过适当的手段是可以挖掘出大量有用信息。
稀疏数据是指,数据框中绝大多数数值缺失或者为零的数据。在现代社会中,随着信息的爆炸式增长,数据量也呈现出爆炸式增长,数据形式也越来越多样化。在数据挖掘领域,常常要面对海量的复杂型数据。其中,稀疏数据这一特殊形式的数据正在越来越为人们所注意。
稀疏数据绝对不是无用数据,只不过是信息不完全,通过适当的手段是可以挖掘出大量有用信息的。然而在一些情纯缺况下,数据的稀疏程度甚至会达到 95%以上,这使得传统的统计方法不适于处理此类数据。
稀疏数据的来源与产生原因可以有很多种。大致归结起来,主要可以概括为以下几个种类:
由于调查不当产生的稀疏数据
这种稀疏数据常见于问卷调查和电话调查中,如果问卷问题设置不当,过于繁陆裤州杂难懂,就会导致被调查者产生厌烦心理,草草回答几个问题了事。然而已经回答的问题又是有效问卷的一部分,不能做遗弃处理,假若这种问卷大量出现,那么就会出现稀疏数据。
由于天然限制产生的稀疏数据
这种稀疏数据常见于早蔽电子商务领域,例如淘宝网、沃尔玛等网购网站或超市中。由于每个客户客观上不可能把所有商品购买一遍,所以他们的客户购买记录必然只是对海量商品中一小部分的记录。这样,客户购买记录必然是一个稀疏数据。
文本挖掘中产生的稀疏数据
在文本挖掘领域,为了比较几篇文章是否属于同一主题,常用的算法是首先选定一批关键词,通过不同文章中这些关键词出现的频率来进行判断。而这一批关键词常常会有成千上万个,而每篇文章基本只包含其中几十到几百个关键词,那么由此产生的数据也就是一个稀疏数据了。
医学造影成像领域
现代医学常常要借助 CT、B 超、核磁等手段造影成像,作为判断病情的重要手段。其中 CT 成像是由若干射线源与接收器来采集数据,在实际应用中,受到设备、病人条件等限制,常常不能做到全角度扫描,故而在成像算法上也常常要面对稀疏数据。

热点内容
生命密码解读走什么 发布:2025-02-09 04:55:51 浏览:279
python常用正则表达式 发布:2025-02-09 04:42:53 浏览:178
机器人编程培训哪家好 发布:2025-02-09 04:37:44 浏览:308
上海怎么学习java 发布:2025-02-09 04:26:39 浏览:23
erp系统搭建备用服务器 发布:2025-02-09 04:07:38 浏览:946
戴尔服务器在bios怎么配置管理ip 发布:2025-02-09 04:01:53 浏览:551
小鱼易连云存储 发布:2025-02-09 03:59:47 浏览:92
正在限制访问 发布:2025-02-09 03:47:17 浏览:904
架设数据库 发布:2025-02-09 03:41:29 浏览:966
imacpro哪个配置最好 发布:2025-02-09 03:32:29 浏览:253