Saturday, June 3, 2017

Breeze, a Numerical Processing Library for Scala

Per the github repo, Breeze is a generic, clean and powerful Scala numerical processing library patterned after NumPy, Matlab and R.


On a Mac, install SBT using homebrew.
$ brew install sbt

$ sbt
> set scalaVersion := "2.11.7"

> set libraryDependencies += "org.scalanlp" %% "breeze" % "0.12"

> set libraryDependencies += "org.scalanlp" %% "breeze-viz" % "0.12"

> console

scala> import breeze.linalg._

scala> import breeze.numerics._

scala> val vec = DenseVector(1.0, 2.0, 3.0)
vec: breeze.linalg.DenseVector[Double] = DenseVector(1.0, 2.0, 3.0)

scala> vec:+ DenseVector(4.0, 5.0, 6.0)
res0: breeze.linalg.DenseVector[Double] = DenseVector(5.0, 7.0, 9.0)

scala> DenseVector.zeros[Int](3)
res1: breeze.linalg.DenseVector[Int] = DenseVector(0, 0, 0)

scala> DenseVector.tabulate(4) {i=> 5.0 * i}
res2: breeze.linalg.DenseVector[Double] = DenseVector(0.0, 5.0, 10.0, 15.0)

scala> val nums = Seq(2, 3, 4)
nums: Seq[Int] = List(2, 3, 4)

scala> DenseVector(nums:_*)
res5: breeze.linalg.DenseVector[Int] = DenseVector(2, 3, 4)

scala> :q

> exit

$