我想使用Clojure的Incanter,但我想混合调用Python的大量Numpy/Scipy数值库。在Incanter和Numpy之间是否有一个互操作性的桥梁,允许从Clojure运行CPython的嵌入式运行时,并将Numpy和Incanter的矩阵数据结构相互转换?
Jython是不够的,因为Numpy需要CPython。
我知道(但从未使用过) http://jepp.sourceforge.net/,它允许Java程序控制嵌入式CPython运行时--但是仍然需要Numpy/Incanter矩阵的相互转换。
我正在寻找类似于https://github.com/jolby/rincanter的东西(我也还没有使用过),但用于CPython/Numpy而不是R。
发布于 2012-02-10 00:53:09
没有现成的numpy-incanter桥。你必须写你自己的。
一种方法是使用JNI resp。Jepp和-正如您已经说过的-将原始ndarray字节转换为Java Colt库可以使用的内容(反之亦然;incanter构建于Colt之上)。此外,您还包装了您感兴趣的所有函数。
另一种方法是序列化ndarray,并在CPython和Jython之间发送它们(例如,使用CPython和Jython:http://packages.python.org/Pyro4/alternative.html#jython的Pyro )。同样,您必须将原始字节转换为Incanter resp。numpy可以理解,但是您可以在Java端使用Python代码,而不需要使用JNI将每个函数包装在numpy/scipy中。
https://stackoverflow.com/questions/8511647
复制相似问题