spark机器学习---数据类型

向量(Vector, Vectors)

1
2
3
4
5
6
7
8
import org.apache.spark.mllib.linalg.{Vector, Vectors}

// Create a dense vector (1.0, 0.0, 3.0).
val dv: Vector = Vectors.dense(1.0, 0.0, 3.0)
// Create a sparse vector (1.0, 0.0, 3.0) by specifying its indices and values corresponding to nonzero entries.
val sv1: Vector = Vectors.sparse(3, Array(0, 2), Array(1.0, 3.0))
// Create a sparse vector (1.0, 0.0, 3.0) by specifying its nonzero entries.
val sv2: Vector = Vectors.sparse(3, Seq((0, 1.0), (2, 3.0)))
1
2
scala> val vl=org.apache.spark.mllib.linalg.Vectors.dense(1,2,3,4)
vl: org.apache.spark.mllib.linalg.Vector = [1.0,2.0,3.0,4.0]

基于Breeze的基本向量运算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
scala> val v2 =breeze.linalg.DenseVector(1,2,3,4)
v2: breeze.linalg.DenseVector[Int] = DenseVector(1, 2, 3, 4)

scala> val v1=vl
v1: org.apache.spark.mllib.linalg.Vector = [1.0,2.0,3.0,4.0]

scala> v2+v2
res2: breeze.linalg.DenseVector[Int] = DenseVector(2, 4, 6, 8)

scala> v2*v2.t
res4: breeze.linalg.DenseMatrix[Int] =
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16

矩阵(Matrix, Matrices)

1
2
3
4
5
6
7
import org.apache.spark.mllib.linalg.{Matrix, Matrices}

// Create a dense matrix ((1.0, 2.0), (3.0, 4.0), (5.0, 6.0))
val dm: Matrix = Matrices.dense(3, 2, Array(1.0, 3.0, 5.0, 2.0, 4.0, 6.0))

// Create a sparse matrix ((9.0, 0.0), (0.0, 8.0), (0.0, 6.0))
val sm: Matrix = Matrices.sparse(3, 2, Array(0, 1, 3), Array(0, 2, 1), Array(9, 6, 8))
1
2
3
4
5
6
7
8
9
10

scala> val m1= org.apache.spark.mllib.linalg.Matrices.dense(2,3,Array(1,2,3,4,5,6))
m1: org.apache.spark.mllib.linalg.Matrix =
1.0 3.0 5.0
2.0 4.0 6.0

scala> val m1= org.apache.spark.mllib.linalg.Matrices.dense(2,3,Array(1,4,2,5,3,6))
m1: org.apache.spark.mllib.linalg.Matrix =
1.0 2.0 3.0
4.0 5.0 6.0

基于Breeze的基本矩阵运算

1
2
3
4
5
6
7
8
9
10
11
12
scala> val m2=breeze.linalg.DenseMatrix(Array(1,2,3),Array(4,5,6))
m2: breeze.linalg.DenseMatrix[Int] =
1 2 3
4 5 6

scala> val m2 = breeze.linalg.DenseMatrix(Array(1,2,3,4,5,6))
m2: breeze.linalg.DenseMatrix[Int] = 1 2 3 4 5 6

scala> m2.reshape(2,3)
res5: breeze.linalg.DenseMatrix[Int] =
1 3 5
2 4 6

矩阵运算

1
2
3
4
5
scala> m2.reshape(2,3).t*m2.reshape(2,3)
res7: breeze.linalg.DenseMatrix[Int] =
5 11 17
11 25 39
17 39 61
打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2018-2020 丁振莹
  • 访问人数: | 浏览次数:

你的每一分支持,是我努力下去的最大的力量 ٩(๑❛ᴗ❛๑)۶

支付宝
微信