Spark ML 之 稀疏和稠密向量

一、概念:DenseVector和SparseVector

  • 密集向量的值就是一个普通的Double数组
  • 稀疏向量由两个并列的数组 indices和values 组成

密集:[1.0,0.0,3.0]    其和一般的数组无异

稀疏:(3,[0,2],[1.0,3.0])     其表示的含义(元素的个数,元素的下标,元素下标对应的值)  

           比如这里:元素个数为:3个、序号0:对应的值为1.0,需要2对应的值为3.0;

    其他下标的数值为0

二、代码表示如下:

val vd = Vectors.dense(2, 5, 8)
println(vd(1)) // 5
println("dense:"+vd) //[2.0,5.0,8.0]

val vs = Vectors.sparse(5, Array(0, 1, 2, 4), Array(9, 3, 5, 7))
println(vs(3)) // 0
println("sparse:"+vs) //(5,[0,1,2,4],[9.0,3.0,5.0,7.0])
原文地址:https://www.cnblogs.com/sabertobih/p/13819653.html