Java equivalente a NumPy

En el mundo de Python, si tengo que hacer algunos cálculos numéricos, uso NumPy y sus amigos como Matplotlib.

Ahora tengo una aplicación de Android/Java y surge la necesidad de hacer algunos números y me pregunto qué debo hacer. ¿Enrollar mis propios envoltorios alrededor de Arrays of Floats?!? Eso suena horrible. Quiero algo de más alto nivel.

Las operaciones que necesitaría realizar son operaciones típicas de vector-escalar o vector-vector:

  • encontrar el elemento máximo en un vector
  • calcular la suma de todos los elementos de un vector
  • producto punto/cruz/elemento de dos vectores

Más adelante podría estar interesado en operaciones avanzadas como FFT u operaciones matriciales, pero ahora mismo estoy buscando una biblioteca básica sólida para evitar reinventar la rueda.

¿Alguna sugerencia?

¿Intentaste googlear java linear algebra library?

Respuestas (3)

La API de nd4j.org intenta imitar la semántica de Numpy, Matlab y scikit-learn. deeplearning4j.org se basa en nd4j.

NM Dev es una biblioteca numérica de Java (licencias comerciales, comunitarias y académicas).

El código abierto está disponible en: https://github.com/nmdev2020/SuanShu

¿Puede señalar las características relevantes solicitadas en la pregunta?

Hay una serie de bibliotecas numéricas de Java.

Consulte aquí para obtener una descripción general: http://www.ee.ucl.ac.uk/~mflanaga/java/OpenSourceNumeric.html

(No tengo la reputación de publicar más de 2 enlaces, así que solo enlace a la página que contiene los enlaces).