Java-Äquivalent zu NumPy

Wenn ich in der Python-Welt etwas mit Zahlen zu tun habe, verwende ich NumPy und seine Freunde wie Matplotlib.

Jetzt habe ich eine Android/Java-Anwendung und es entsteht die Notwendigkeit, einige Zahlen zu knacken, und ich frage mich, was ich tun soll. Rollen Sie meine eigenen Wrapper um Arrays of Floats?!? Das klingt schrecklich. Ich will etwas Höheres.

Operationen, die ich ausführen müsste, sind typische Vektor-Skalar- oder Vektor-Vektor-Operationen:

  • Finden Sie das maximale Element in einem Vektor
  • Berechnen Sie die Summe aller Elemente in einem Vektor
  • Punkt-/Kreuz-/elementweises Produkt zweier Vektoren

Später interessiere ich mich vielleicht für fortgeschrittene Operationen wie FFT oder Matrixoperationen, aber im Moment suche ich nach einer soliden Basisbibliothek, um zu verhindern, dass ich das Rad neu erfinde.

Irgendwelche Vorschläge?

Hast du versucht zu googeln java linear algebra library?

Antworten (3)

Die nd4j.org- API versucht, die Semantik von Numpy, Matlab und scikit-learn nachzuahmen. deeplearning4j.org basiert auf nd4j.

NM Dev ist eine numerische Java-Bibliothek (kommerzielle, Community- und akademische Lizenzen).

Die Open Source davon ist verfügbar unter: https://github.com/nmdev2020/SuanShu

Können Sie auf die in der Frage angeforderten relevanten Funktionen hinweisen?

Es gibt eine Reihe numerischer Java-Bibliotheken.

Eine Übersicht finden Sie hier: http://www.ee.ucl.ac.uk/~mflanaga/java/OpenSourceNumeric.html

(Ich habe nicht den Ruf, mehr als 2 Links zu posten, also verlinke nur auf die Seite, die die Links enthält.)