我正在考虑将科学代码从 Python 移植到 Jython,我很感兴趣,是否存在适用于 Jython 的数学库,它们是:
- 免费用于商业用途
- 具有为 Jython 设计的方便的矩阵语法 - 即允许切片、二进制和整数索引、+-*/ 操作,如 matlab 和 numpy。
机器学习和统计路径的额外可用性将是一个加号(或将数据轻松转换为一些常见的数据格式,主要 Java 机器学习库可以理解)。
提前感谢您提供有关此类库的任何信息。
不久前,我担任了维护这样一个包的角色。它被称为 jnumeric (可在github上获得并通过maven安装)。
不过,JNumeric 有一段奇怪的历史,可以追溯到 2000 年代初期。它在功能上从来没有真正等同于 NumPy(甚至是数字,这正是它实际上试图模仿的),虽然它对于我们使用它的用途来说“足够好”,但可以将它用作Java 程序可能不是一个好主意。我们用 Python 从头开始重写我们的应用程序,这样我们就可以使用 NumPy 而不是尝试在 Java 中进行向量数学,这是一个非常糟糕的想法。出于这个原因, jnumeric 维护不足,并且应该默默地淡入不存在。
我最近注意到 Github 上弹出了一个新项目Numpy4J,它可能会有更光明的未来。
虽然我知道它并不能完全解决您的问题,但我很好奇您为什么要迁移到 Jython 以获取科学代码。Java 没有 Python 拥有的出色的数字运算和绘图库。像 Weka 这样的 ML 库在 scikit-learn 中有 Python 等价物。像 ImageJ 这样的成像东西在 scikit-image 中有一个等价物。统计包存在于 pandas 和 statsmodels 中。你对 Python 不抓挠的科学之痒是什么?
如果您想迁移到 Jython 以便与无法轻松移植到 Python 的现有 Java 库进行交互,我会考虑使用 JPype而不是 Jython。