本文主要是介绍3 Spark机器学习 spark MLlib 矩阵向量、矩阵运算Breeze库-2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
上一篇是矩阵的创建、连接等相关操作。
这一篇主要是矩阵的数值计算。
1 基本运算
元素加法 | a+b |
元素乘法 | *:* |
元素除法 | /:/ |
元素比较 | <:< |
元素相等 | :== |
元素追加 | :+= |
元素追乘 | :*= |
元素最大值 | max(a) |
元素最大值及位置 | argmax(a) |
package breezeimport breeze.linalg.{DenseMatrix, argmax, max}object Math {def main(args: Array[String]): Unit = {val a = DenseMatrix((1, 2, 3), (4, 5, 6))val b = DenseMatrix((1, 1, 1), (2, 2, 2))println(a + b)println("-------------")//每个元素相乘println(a *:* b)println("-------------")//每个元素相除println(a /:/ b)println("-------------")//比较每个元素的大小println(a <:< b)println("-------------")//是否相等println(a :== b)println("-------------")//追加,每个元素都加1println(a :+= 1)println("-------------")//追乘,每个元素都乘2println(a :*= 2)println("-------------")val x = DenseMatrix((1, 2, 3), (4, 5, 6))//元素最大值println(max(x))println("-------------")//最大值及其位置println(argmax(x))}}
2 求和函数
主要是对矩阵内行、列等的求和函数。
所有元素的和 | sum(a) |
某一列求和 | sum(a(::, 1)) |
某一行求和 | sum(a(0, ::)) |
对角线元素和 | trace(a) |
import breeze.linalg.{DenseMatrix, accumulate, sum, trace}object Sum {def main(args: Array[String]): Unit = {val a = DenseMatrix((1, 2, 3), (4, 5, 6))println(sum(a))println("-----------")//对第2列求和println(sum(a(::, 1)))println("-----------")//对第1行求和println(sum(a(0, ::)))println("-----------")//对角线求和,必须是正方形矩阵val b = DenseMatrix((1, 2, 3), (4, 5, 6), (7, 8, 9))println(trace(b))}}
3 其他
此外还有很多,如布尔函数、线性代数函数、取整、四舍五入等等。就不多介绍,这些不太常用的可以在需要时去查api即可。
这篇关于3 Spark机器学习 spark MLlib 矩阵向量、矩阵运算Breeze库-2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!