Scala创建稀疏向量

时间:2012-02-18 09:35:48

标签: scala matrix encoder

这是我在scala中尝试实现的功能 创建一些数字的列表..说(1,2,3,4,5)//这代表1个文件及其特征
将有n个具有不同特征的列表。

我想将这n个列表放入矩阵中。因此,如果我想在矩阵转置之类的矩阵上进行操作,那么稍后我就可以轻松完成矩阵逆转。

目前我确实准备好了列表,但我不确定如何使用scala的sparseVector和Encoder函数,因为此矩阵的行数很大(约100万),列数为200000.因此性能也是一个问题

1 个答案:

答案 0 :(得分:3)

您可以使用具有默认值的地图来表示稀疏矩阵:

val matrix = Map((0, 0) -> 1, (0, 1) -> 2, (30, 4) -> 3).withDefaultValue(0)

如果只有行需要稀疏,您可以使用Vector Map[Int, Int]之类的内容。

一般而言,如果您关心内存或矩阵运算的性能,那么使用专为解决此类问题而设计的库将会更好。我对过去的Colt libraries感到满意,但还有其他一些选项,例如ScalalaJScience