使用 Chaquopy 将大数据数组从 Python 返回到 Java

Returning large data array from Python to Java using Chaquopy

使用 Chaquopy return 从 Python 到 Java 的大型数据数组的最快和最好的方法是什么? Python 数据集是一个整数列表(例如 list = [1, 3, 5, 7...]),大小为 +100,000。

我发现我可以 return 列表 Java 如下:

short[] data2 = py.getModule("main").callAttr("rula_timeline").toJava(short[].class);

但是,在我的 Java 中,我需要将数据集作为 ArrayList。我是 Java 的新手,所以我不知道如何转换它。

当然 how to convert an array to an ArrayList 上已经有一个 Whosebug 问题,所以我不会在这里重复。

但是,如果您要处理包含数十万个项目的列表,那么在从 Python 转换为 Java 时可能会遇到一些性能问题。在 Chaquopy 8.0.0 及更高版本中,这可以通过使用相应类型的 NumPy 数组而不是普通的 Python 列表来解决。例如,如果您想转换为 Java short 数组,那么为了获得最佳性能,您的 Python 代码应该 return 一个 NumPy int16 数组。