Java/Scala library for algebra, mathematics [close

2019-01-31 01:26发布

问题:

Can you advise me some flexible and powerful, yet fast library which could cover SciPy (both in performance and functionality). I found SciPy very expressive - but I want to try something in Scala.

I read a little about Scala - but is not as featured as SciPy. Any alternatives? Maybe Java library?

回答1:

The functionality in Scipy is rather Matlab-like. So the question is whether you just want the core linear algebra / vector-matrix mathematics operations, or all sorts of things like clustering.

If you are not aware of both Scalala (now called Breeze) and ScalaLab, you should check them out--maybe they'll suit your needs.

If you need a more diverse library, there are a couple of Java libraries that might be suitable: CERN Colt and Apache Commons Math; these are intended to be used in Java style, however, and you're pretty much limited to using them that way from within Scala. (Though of course you can wrap the bits that you use particularly heavily in something prettier.)



回答2:

There are scalala (scala linear algebra library) and ScalaLab (more like a Matlab scala-environment)



回答3:

There is a la4j (Linear Algebra for Java) library that can be used from Scala environment but it doesn't contain any Scala features like hi-order functions since Java doesn't support it. la4j was designed to be used in imperative environment (not functional). So if you want to use it in functional way - Scalala is the best chose.