最近在学习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] =