spark | scala | 线性代数库Breeze学习

最近在学习spark,对线性代数库Breeze做了学习,介绍下常用的函数

前提,使用Breeze库,必须导入相关的包

import breeze.linalg._
import breeze.numerics._

最基础的操作:矩阵,向量,数组的转换

1、DenseMatrix.zerosDouble

全为零的n*m的矩阵,Double类型

2、DenseVector.zerosDouble

全为零的n个数组成的向量,Double类型

3、DenseVector.onesDouble

全为1的n个数组成的向量,Double类型

4、DenseVector.fill(n){5.0}

产生向量,长度为n,用5.0来填充

5、DenseVector.range(start,stop,step)
DenseVector.rangeD(start,stop,step)

产生序列向量
6、DenseVector.linspace(start,stop,numvals)

产生向量,有numvals个数的向量

7、DenseMatrix.eyeDouble

产生n*n的矩阵,对角为1,Double类型

8、diag(DenseVector(1.0,2.0,3.0))

产生主对角元素为1.0,2.0,3.0的矩阵

9、DenseMatrix((1.0,2.0),(3.0,4.0))

产生矩阵

10、DenseVector(1,2,3,4)

产生向量

11、DenseVector(1,2,3,4).t

向量转置

12、DenseVector.tabulate(3){i => 2*i}

scala> DenseVector.tabulate(3){i => 2*i}

res33: breeze.linalg.DenseVector[Int] = DenseVector(0, 2, 4)

结果为:0,2,4

13、DenseMatrix.tabulate(3,2){case(i,j) => i+j}

scala> DenseMatrix.tabulate(3,2){
   case(i,j) => i+j}
res34: breeze.linalg.DenseMatrix[Int] =
0  1
1  2
2  3

行列数相加

14、new DenseVector(Array(1,2,3,4))
从数组创建向量

scala> new DenseVector(Array(1,2,3,4))
res35: breeze.linalg.DenseVector[Int] = DenseVector(1, 2, 3, 4)

15、new DenseMatrix(2,3,Array(11,12,13,21,22,23))
从数组创建矩阵

scala> new DenseMatrix(2,3,Array(11,12,13,21,22,23))
res36: breeze.linalg.DenseMatrix[Int] =
11  13  22
12  21  23

16、DenseVector.rand(4)
得到0到1的随机向量,长度为4

scala> DenseVector.rand(4)
res37: breeze.linalg.DenseVector[Double] = DenseVector(0.9838289972536518, 0.798555117073358, 0.30308183931925403, 0.7958095551517774)

17、DenseMatrix.rand(2,3)
得到0到1的随机矩阵

scala> DenseMatrix.rand(2,3)
res38: breeze.linalg.DenseMatrix[Double] =
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值