gpt4 book ai didi

java - 将Java类导入python项目

转载 作者:行者123 更新时间:2023-11-30 08:04:24 24 4
gpt4 key购买 nike

我一直在努力寻找一种将 Java-ml 导入到我的 python 项目中的方法。我的 jar 文件与我的项目位于同一路径中。

我想将它用于 kmeans 聚类,因为它允许我更改距离度量。我想知道是否使用你们建议的实现,我是否能够将不同的 java 类作为函数的参数传递?

我尝试使用:

import sys

sys.path.append(r"C:\Users\X\Desktop\X\javaml-0.1.7\javaml-0.1.7.jar")

import net.sf.javaml as jml

test = jml.clustering.Kmeans()

我考虑过使用 jython,但是我不确定它是如何工作的,而且我不清楚我是否可以继续使用 idle 以及我是否需要重新编程我的项目。

最后我考虑使用 PyJNIus,但它根本不起作用。

最佳答案

简而言之,您不能在 CPython 解释器中本地运行 Java 代码。

首先,Python 只是语言规范的名称。如果您使用的是操作系统提供的 Python(或从 Python 官方网站下载),那么您使用的是 CPython。 CPython 没有解释 Java 代码的能力。

但是,正如您提到的,有一个用于 JVM 的 Python 实现,称为 Jython。 Jython 是在 JVM 上运行的 Python 实现,因此可以与 Java 模块交互。但是,很少有人使用 Jython,因此您需要靠自己的力量才能使一切正常工作。您不需要重新编写原始 Python 代码(因为 Jython 可以解释 Python 2.x),但并非所有库(例如 numpy)都受支持。

最后,我认为您需要更好地理解 K-Means 算法,因为该算法是根据欧氏距离隐式定义的。使用任何其他距离度量将不再被视为 K-Means,并且可能会影响算法的收敛性。参见 here获取更多信息。


同样,您不能在 CPython 解释器中本地运行 Java 代码。当然,有各种第三方库可以处理 Java 和 Python 之间的数据编码。但是,我坚持我的观点,即对于这个特定的用例,您最好使用原生 Python 库(类似于 Scikit-Learn 中的 K-Medoid)。在我看来,尝试调用 Java 以及所有相关的开销对于这个问题来说是过大的。

关于java - 将Java类导入python项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35678888/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com