[英]Difference between RowMatrix and Matrix in Apache Spark?
我想知道Apache Spark中可用的RowMatrix和Matrix类之间的基本区别。
这里有一个更精确的问题是mllib.linalg.Matrix
和mllib.linalg.distributed.DistributedMatrix
之间有什么区别。
Matrix
是一个特征,代表驻留在单个计算机内存中的局部矩阵 。 现在有两个基本实现: DenseMatrix
和SparseMatrix
。 DistributedMatrix
是一个特征,代表建立在RDD
之上的分布式矩阵 。 RowMatrix
是DistributedMatrix
的子类,它以行方式存储数据,而没有有意义的行顺序。 DistributedMatrix
还有其他实现(例如IndexedRowMatrix
, CoordinateMatrix
和BlockMatrix
),每个实现都有自己的存储策略和特定的方法集。 参见例如Apache Spark中的矩阵乘法 这将归结为您所使用的语言/框架/学科的惯用法,但是在计算机科学中,数组是“事物”的一维“列表”,可以通过它们在目录中的位置来引用。清单。 列表中可以包含的内容之一是另一个数组,该数组使您可以创建数组的数组(数组的数组...),从而为您提供任意大尺寸的数据集。
矩阵来自线性代数,是数据的二维表示(可以用数组数组表示),带有一组强大的数学运算,可让您以有趣的方式操作数据。 尽管数组的大小可以变化,但是通常根据要执行的特定操作类型知道矩阵的宽度和高度。
矩阵在3D图形和物理引擎中被广泛使用,因为矩阵是一种快速,便捷的方式来表示三维对象的变换和加速度数据。
数组:齐次元素的集合。
矩阵:一个简单的行和列的东西。
两者在不同的空间中是不同的事物。 但是在计算机编程中,一维数组的集合可以称为矩阵。 您可以用矩阵形式表示二维数组(即,单维数组的集合)。
例
A [2] [3]:这意味着A是2个单维数组的集合,每个数组的大小为3。
A [1,1] A [1,2] A [1,3] //这是一维数组
A [2,1] A [2,2] A [2,3] //这是另一个一维数组
//集合是一个多维或二维数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.