这是我在scala中尝试实现的功能
创建一些数字的列表..说(1,2,3,4,5)//这代表1个文件及其特征
将有n个具有不同特征的列表。
我想将这n个列表放入矩阵中。因此,如果我想在矩阵转置之类的矩阵上进行操作,那么稍后我就可以轻松完成矩阵逆转。
目前我确实准备好了列表,但我不确定如何使用scala的sparseVector和Encoder函数,因为此矩阵的行数很大(约100万),列数为200000.因此性能也是一个问题
答案 0 :(得分:3)
您可以使用具有默认值的地图来表示稀疏矩阵:
val matrix = Map((0, 0) -> 1, (0, 1) -> 2, (30, 4) -> 3).withDefaultValue(0)
如果只有行需要稀疏,您可以使用Vector
Map[Int, Int]
之类的内容。
一般而言,如果您关心内存或矩阵运算的性能,那么使用专为解决此类问题而设计的库将会更好。我对过去的Colt libraries感到满意,但还有其他一些选项,例如Scalala和JScience。