Mllib数据类型(密集向量和稀疏向量)

1.局部向量

Mllib支持2种局部向量类型:密集向量(dense)和稀疏向量(sparse)。

密集向量由double类型的数组支持,而稀疏向量则由两个平行数组支持。

example:

向量(5.2,0.0,5.5)

密集向量表示:[5.2,0.0,5.5]

稀疏向量表示:(3,[0,2],[5.2,5.5])    # 3是向量(5.2,0.0,5.5)的长度,除去0值外,其他两个值的索引和值分别构成了数组[0,2]和数组[5.2,5.5]。

Vector是所有局部向量的基类,Dense-Vector和SparseVector都是Vector的具体实现。

import org.apache.spark.mllib.linalg.{Vector, Vectors}
// 创建一个dense vector (5.2, 0.0, 5.5).
val dv: Vector = Vectors.dense(5.2, 0.0, 5.5)
// 创建一个sparse vector (5.2, 0.0, 5.5)并且指定它的索引和值
val sv1: Vector = Vectors.sparse(3, Array(0, 2), Array(5.2, 5.5))
// 创建一个sparse vector (5.2, 0.0, 5.5)并且指定它的索引和值,通过指定非0的值,位置0是5.2,位置2是5.5
val sv2: Vector = Vectors.sparse(3, Seq((0, 5.2), (2, 5.5)))

  

转载于:https://www.cnblogs.com/zeppelin/p/6500452.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值