JMP Python 脚本接口指向与 JMP 原生文件夹不同的 Python 安装目录。你好
我正在尝试编写一个脚本,该脚本从 JMP 表发送数据,执行 Python 库,并将输出返回给 JMP。
有些库对 Python 的安装有非常严格的要求。此外,我们当然还有一个独立的 Python 安装(即本地安装,我称之为非 jmp Python)。
我是 JMP Python 脚本新手,正在学习https://www.jmp.com/support/help/en/18.1/index.shtml#page/jmp/install-a-python-package.shtml#上的基础知识。我的问题是,JMP 是否可以指定 Python 的安装目录,而不是默认的 JMP 安装目录?如果可以,能否提供一个 JMP Python 脚本示例?
谢谢
自动化和脚本编写回复:JMP Python 脚本接口指向的 Python 安装目录与 JMP 原生文件夹不同在 JMP 18 之前的版本中,你可以指定 JMP 运行特定的 Python 安装目录下的程序。但在 JMP 18 或更高版本中,你需要使用 `Run Program()` 函数,这似乎不太理想。
回复:JMP Python 脚本接口指向的 Python 安装目录与 JMP 原生文件夹不同JMP 14-17 尝试使用用户系统上安装的 Python。但这实际上仅适用于 Python.org 版本,如果系统上安装了多个 Python 版本,则会出现问题。如果 JMP 正确识别了系统上的 Python 版本,一切正常;但如果识别失败,用户几乎无法指定必要的参数来指向正确的 Python 版本。JMP 14-17 仅通过 JSL 脚本命令提供界面。此外,它还导致脚本不具备可移植性,因为脚本的接收者可能未安装 Python 或安装了不兼容的版本。
JMP 18 的目标是:
- 为了确保 Python 能与 JMP 开箱即用,无需任何配置。
- JMP 18 的每个用户都将拥有相同的 Python 3.11.x 版本,因此脚本兼容性将不再是一个问题。
- 提供一个以Python为中心的环境,而不是仅提供JSL接口的Python环境。
- 提供便捷的外部 Python 包安装方式,以增强 JMP 的功能。
- 开始提供 JMP 和 Python 环境之间更好的数据交换,尤其是在数据表方面,使其成为零拷贝引用,而不是通过文件系统在环境之间传输的数据副本。
要实现数据表的零拷贝集成,需要我们链接到 Python 共享库,因此只能使用 JMP 提供的嵌入式 Python。
JMP 19 捆绑了 Python 3.13.x。由于需要修复 bug 和安全更新,JMP 将持续与最新的 Python 版本保持紧密联系。虽然我们的维护版本会包含更新的 Python 版本,但我们会始终保持 JMP 特定版本发布周期内的主版本号和次版本号一致。
JMP 20 很可能将随 3.14.x 版本一起发布。
可以将 JMP 环境视为 JMP 特有的虚拟环境。您完全可以使用 JMP Python 与外部 Python 环境进行交互。我的建议是,使用 JMP 内部的 Python 将数据移动到数据库,或者通过 mmap(共享内存)、套接字、ZeroMQ 等多种方式将数据传递给其他 Python 环境,而无需将数据写回文件系统。
此时,可以使用 JSL 的 RunProgram() 或 Python 的多进程来启动另一个 Python 环境。
回复:JMP Python 脚本接口指向的 Python 安装目录与 JMP 原生文件夹不同感谢您的回复。我阅读 JMP Python 文档的速度有点慢。我希望能够找到一些带有示例的模板(也许已经有了)。可能还有其他问题。
我对Python的需求源于:
1. EBM(可解释增强机)——JMP 中不支持此功能
2. SHAP 特有的图表……SHAP 可以通过不同的平台获得,但我更喜欢原始 SHAP 库提供的特定图表格式。
特别是 EBM 专用的 Python 和 scikit-learn 版本。我需要一个示例来演示如何安装和运行一个简单的库,然后将输出以数据表的形式返回给 JMP,这样可以加快我的工作速度。我想我已经弄明白了“如何安装”的部分。
根据我的理解,如果要使用不在 JMP 安装文件夹中的 Python 库,则需要通过 Run_Program() 函数来解决问题。
回复:JMP Python 脚本接口指向的 Python 安装目录与 JMP 原生文件夹不同一般来说,只要模块与 JMP 的 Python 安装兼容,就可以使用它。您可以使用 `Python Install Packages("包名")` 命令来安装它。 ),假设它可以通过 pip 安装。
回复:JMP Python 脚本接口指向的 Python 安装目录与 JMP 原生文件夹不同你好@altug_bayram ,
“我希望有个带示例的模板。”
脚本索引中有一些简单的 Python 示例。Python 集成 > 函数 > from_dataframe 中也有一些示例,或许正是您需要的。
虽然不是你问的那些问题,但或许会有帮助:
EBM(可解释增强机)
我对 EBM 不是很熟悉,但 JMP 中的 Predictor Screening 平台和 JMP Pro 中的 Bootstrap Forest/Boosted Tree 平台或许能满足你的需求。从网上对 EBM 的简要介绍来看,它似乎融合了 Bootstrap Forest 和 Boosted Tree 的特点,但这可能过于简单化了。
SHAP特定图表
这个链接对绘制图表有帮助吗?
Python 特性:
最终,使用 Python 特有的库将数据表发送到 Python,然后将数据和/或图像导入 JMP,应该不会有任何技术障碍。
我附上了一个示例脚本,它使用 ephem 库计算行星位置,然后将数据导入 JMP 进行可视化。请注意,第 9-10 行在 JMP 的 Python 环境中安装 ephem 库,只需运行一次即可。