Spark机器学习库-矩阵or向量的创建

spark矩阵或者向量的创建

导入的包是 import breeze.linalg.{DenseMatrix, DenseVector}

1、全0矩阵
 val zerosMatrix = DenseMatrix.zeros[Double](2,3)

0.0 0.0 0.0
0.0 0.0 0.0

2、全0向量
 val zerosVector = DenseVector.zeros[Double](3).toDenseMatrix

0.0 0.0 0.0

3、全1矩阵
val onesMatrix = DenseMatrix.ones[Double](2,2)

1.0 1.0
1.0 1.0

4、全1向量
 //全1向量
 val onesVector = DenseVector.ones[Double](2)

DenseVector(1.0, 1.0)

5、生成自然序列
 //satrt=开始数值。end结束数值。step=步长
    val rangeVector = DenseVector.range(0,10)

DenseVector(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

6、按照数值填充向量
 //按照数值填充向量
 val fillVector = DenseVector.fill(5){3.0}

DenseVector(3.0, 3.0, 3.0, 3.0, 3.0)

7、线性等分向量
    //线性等分向量,没有这个方法。可能我是2.11的

    //val linespaceVector = DenseVector.linspace(0,1,100)
8、单位矩阵
//单位矩阵
val eyeMatrix = DenseMatrix.eye[Double](3)
println(eyeMatrix)

1.0 0.0 0.0
0.0 1.0 0.0
0.0 0.0 1.0

9、对角矩阵
    //对角矩阵
    val diagMatrix = diag(DenseVector(1.0,2.0,3.0))
    println(diagMatrix)  

1.0 0.0 0.0
0.0 2.0 0.0
0.0 0.0 3.0

10、按照行创建矩阵
 //按照行创建矩阵
    val lineMatrix = DenseMatrix((1.0,2.0),(3.0,4.0))
    println(lineMatrix)

1.0 2.0
3.0 4.0

11、按照行创建向量
 //按照行创建矩阵
    val lineVector = DenseVector((1.0,2.0))
    println(lineVector)

DenseVector((1.0,2.0))

12、向量的转置
    //向量转置
    println(rangeVector.t)

    //矩阵转置
    println(lineMatrix.t)

Transpose(DenseVector(0, 1, 2, 3, 4, 5, 6, 7, 8, 9))
1.0 3.0
2.0 4.0

13、从函数创建向量
//从函数创建向量
    val tabVector = DenseVector.tabulate[Double](3){i=>i*2}
    println(tabVector)

DenseVector(0.0, 2.0, 4.0)

14、从函数创建矩阵
    //从函数创建矩阵
    val tabMatrix = DenseMatrix.tabulate[Double](3,5){case (i,j)=>i+j}
    println(tabMatrix)

0.0 1.0 2.0 3.0 4.0
1.0 2.0 3.0 4.0 5.0
2.0 3.0 4.0 5.0 6.0

15、从数组创建向量
   //从数组创建向量
    val arrVector = new DenseVector[Int](Array(0,1,2,3,4))
    println(arrVector)

DenseVector(0, 1, 2, 3, 4)

16、从数组创建矩阵
    //从数组创建矩阵
    val arrMatrix = new DenseMatrix[Double](2,3,Array(0.0,1,2,3,4,5))
    println(arrMatrix)

0.0 2.0 4.0
1.0 3.0 5.0

17、0到1的随机向量
    //0-1的随机向量
    val randVector = DenseVector.rand[Double](4)
    println(randVector)

DenseVector(0.6399111087486293, 0.34824119577191204, 0.04476477489211206, 0.03202374194560176)

18、0到1的随机矩阵
    //0-1的随机矩阵
    val randMatrix = DenseMatrix.rand[Double](3,5)
    println(randMatrix)

0.580150952036453 0.5519657482009042 0.8286419855007678 … (5 total)
0.8351852708961485 0.20434594686142127 0.6061584071396189 …
0.1121401023193529 0.8473588229601963 0.14499686193253702 …

19、Code
package com.sparktest.demo

import breeze.linalg.{DenseMatrix, DenseVector, diag}


/**
  * Created by HeartisTiger on 2019/7/7
  */
object Demo01 {
  def main(args: Array[String]) = {
    //全0矩阵
    val zerosMatrix = DenseMatrix.zeros[Double](2, 3)
    println(zerosMatrix.t)

    //全0向量
    val zerosVector = DenseVector.zeros[Double](3).toDenseMatrix
    println(zerosVector)

    //全1矩阵
    val onesMatrix = DenseMatrix.ones[Double](2, 2)
    println(onesMatrix)

    //全1向量
    val onesVector = DenseVector.ones[Double](2)
    println(onesVector)

    //按照数值填充向量
    val fillVector = DenseVector.fill(5){3.0}
    println(fillVector)


    //satrt=开始数值。end结束数值。step=步长
    val rangeVector = DenseVector.range(0,10)
    println(rangeVector)

    //线性等分向量,没有这个方法。可能我是2.11的

    //val linespaceVector = DenseVector.linspace(0,1,100)

    //单位矩阵
    val eyeMatrix = DenseMatrix.eye[Double](3)
    println(eyeMatrix)

    //对角矩阵
    val diagMatrix = diag(DenseVector(1.0,2.0,3.0))
    println(diagMatrix)

    //按照行创建矩阵
    val lineMatrix = DenseMatrix((1.0,2.0),(3.0,4.0))
    println(lineMatrix)

    //按照行创建矩阵
    val lineVector = DenseVector((1.0,2.0))
    println(lineVector)

    //向量转置
    println(rangeVector.t)

    //矩阵转置
    println(lineMatrix.t)

    //从函数创建向量
    val tabVector = DenseVector.tabulate[Double](3){i=>i*2}
    println(tabVector)

    //从函数创建矩阵
    val tabMatrix = DenseMatrix.tabulate[Double](3,5){case (i,j)=>i+j}
    println(tabMatrix)

    //从数组创建矩阵
    val arrMatrix = new DenseMatrix[Double](2,3,Array(0.0,1,2,3,4,5))
    println(arrMatrix)

    //从数组创建向量
    val arrVector = new DenseVector[Int](Array(0,1,2,3,4))
    println(arrVector)

    //0-1的随机向量
    val randVector = DenseVector.rand[Double](4)
    println(randVector)

    //0-1的随机矩阵
    val randMatrix = DenseMatrix.rand[Double](3,5)
    println(randMatrix)




  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值