
ScalaNLP, Vegas, and Breeze
Breeze is one of the primary scientific computing libraries for Scala, which provides a fast and efficient way of data manipulation operations such as matrix and vector operations for creating, transposing, filling with numbers, conducting element-wise operations, and calculating determinants.
Breeze enables basic operations based on the netlib-java library, which enables extremely fast algebraic computations. In addition, Breeze provides a way to perform signal-processing operations, necessary for working with digital signals.
- Breeze (https://github.com/scalanlp/breeze/)
- Breeze examples (https://github.com/scalanlp/breeze-examples)
- Breeze quickstart (https://github.com/scalanlp/breeze/wiki/Quickstart)
On the other hand, ScalaNLP is a suite of scientific computing, ML, and natural language processing, which also acts as an umbrella project for several libraries, including Breeze and Epic. Vegas is another Scala library for data visualization, which allows plotting specifications such as filtering, transformations, and aggregations. Vegas is more functional than the other numerical processing library, Breeze.
- Vegas (https://github.com/vegas-viz/Vegas)
- Breeze (https://github.com/scalanlp/breeze)
Whereas the visualization library of Breeze is backed by Breeze and JFreeChart, Vegas can be considered a missing Matplotlib for Scala and Spark, because it provides several options for rendering plots through and within interactive notebook environments, such as Jupyter and Zeppelin.