JMP® 18:不只是滿足 Python 愛好者一年前,也使用 Python 的 JMP 使用者明確表示,他們認為我們的 Python 介面不太理想。哎喲!我們認為五年多前推出的 JMP 和 Python 整合已經達到了目標。意識到這只是令人滿意(換句話說,它足夠好,但不是最好的),我們決定正面應對挑戰。
JMP 首席系統開發人員 Paul Nelson 率先創建了一個一致、功能齊全的整合開發環境,用於在 JMP 18 中編寫和執行 JMP 中的 Python 腳本。
我最近與 Paul 討論了升級後的 JMP 和 Python 整合。 Paul 強調,我們的目標是為 Python 開發人員提供一個更有效率的環境。一些關鍵改進包括:
一致的環境,安裝後即可立即運行,無需配置。 Python 支援無限的客戶Python 環境。新增無法在無限的客戶 Python 環境中進行測試的新 JMP 和 Python 功能是站不住腳的。解決方案? JMP 18 包含一個嵌入式 Python 版本,它是經過全面測試的環境的基礎,安裝後即可立即運行。
在即時環境中直接記憶體存取 Python 資料表。在先前的版本中,Python 使用者存取 JMP 資料表的副本。現在,JMP 18 提供從 Python 環境直接存取 JMP 資料表的功能,因此 Python 使用者可以在 JMP 內從 Python 腳本存取、建立和修改 JMP 表。
新的 Python 腳本編輯器使用 Python 註解和程式碼著色以及嵌入式日誌。先前的整合使用 JMP 腳本語言 (JSL)。 JSL 對 JSL 開發人員來說很熟悉,但對於具有 Python 經驗但沒有 JSL 經驗的 JMP 使用者來說往往不受歡迎。在 JMP 18 中,使用者可以直接在 JMP 腳本編輯器中開啟和執行 Python 腳本,並從 Python 腳本執行 JSL。 JMP 腳本索引記錄並提供了新功能的範例。擁有一致的 Python 腳本環境也為使用 Python 和 JSL 編寫插件奠定了基礎。
聽聽保羅的更多信息:
請考慮註冊 Paul 於 3 月 21 日舉辦的現場網路研討會開發人員教學:JMP 18 中的新 Python 整合和腳本功能,聆聽他提供完整的詳細資訊並示範介面。而且,如果您參加在英國曼徹斯特舉行的 JMP Discovery 峰會,您可以在 3 月 6 日上午的全體會議上聽到 Paul 的演講。
順便說一句,作為一名 Python 程式設計師,我並沒有聽說過 Python 鼻祖 Guido van Rossum 在開始研究新語言時正在閱讀《Monty Python's Flying Circus》腳本的傳言。他想要一個簡短、獨特、有趣的名字,所以他決定將其命名為 Python。聽起來很有道理!
JMP 首席系統開發人員 Paul Nelson 率先創建了一個一致、功能齊全的整合開發環境,用於在 JMP 18 中編寫和執行 JMP 中的 Python 腳本。結果如何?為 Python 開發人員提供了一個更高效的環境,安裝後即可立即運行,提供對實時環境中 Python 數據表的直接內存訪問,以及使用 Python 註釋和代碼著色以及嵌入式日誌的集成 Python 腳本編輯器。
自動化和腳本編寫回覆:JMP® 18:不只是滿足 Python 愛好者哇,這聽起來棒極了!
回覆:JMP® 18:不只是滿足 Python 愛好者關於將資料從 Python 返回 JMP 的評論/問題。
目前我們可以這樣做:
dt = Python Get( df )
其中「df」是 Python 資料框。
我注意到上面的命令實際上所做的是將資料幀寫入 $TEMP 資料夾中的 CSV,然後呼叫 JSL 將其讀入,然後刪除該臨時 CSV。對於大文件,寫入文件和掃描/讀入文件顯然都會產生開銷。
如果這可以是直接從 Python 到 JMP 的記憶體傳輸,那就太好了
回覆:JMP® 18:不只是滿足 Python 愛好者出於好奇,JMP v18 是否支援使用 python 程式碼的公式列?
回覆:JMP® 18:不只是滿足 Python 愛好者在 JMP 14-17 中,Python Send ( dt ) 和 Python Get ( df ) 都是透過臨時檔案保存 CSV 來操作的。這是 JMP 18 中的主要變化之一。這不是副本,而是內存中對 數據表。它可以直接從Python讀取和修改。如果您從 JSL 執行 Python Get ( dt ),您將獲得記憶體中資料表所引用的資料表。由於相容性問題,留下了原始的 Python Get( df );將 pandas 資料幀作為副本放入 JMP 資料表中的方法。
現在,您可以在 Python 中獲取資料框,然後簡單地迭代資料框列並在記憶體中建立等效的 JMP 資料表。請參閱 jmp.DataTable。位於 JMP 18 腳本索引中的新 Python 類別下。範例腳本還有一個 Python 子目錄。在那裡,您將找到一個JMP2pandas.py 腳本,該腳本顯示了從jmp.DataTable 物件在記憶體中建立pandas.DataFrame 的兩種方法,以及從pandas.DataFrame 建立jmp.DataTable 物件的範例(內存中)
# create JMP DataTable from pandas DataFrame
dt2 = jmp.DataTable('BC2',df.shape[0])
for j in range( df.shape[1] ):
dt2.new_column(dt[j].name, dt[j].dtype)
dt2[j] = list(df.iloc[:,j])
其中 df 是 pandas 資料框,dt2 是新的 JMP 資料表。 (注意 dt 也是 JMP jmp.DataTable 對象,類型參數是 jmp.DataType 枚舉值。)。此範例檔案將「Big Class.jmp」開啟為 dt,建立一個 pandas.DataFrame,然後從資料幀建立 dt2。
回覆:JMP® 18:不只是滿足 Python 愛好者JMP 18 中的公式列不支援 Python 程式碼。為了使 JMP 18 更加強大、在啟動時工作、支援 Python 感知腳本編輯器、增強的錯誤報告、添加腳本索引以及打開從 Python 到 JMP 的橋樑,需要添加大量基礎設施。許多長期以來缺乏的東西現在都得到了增強,使 JMP 中成為一個有吸引力且高效的 Python 環境。
現在繁重的工作已經完成,我們不會就此結束。未來還有更多。