@海德米勒,我們可能希望針對 JMP 18 進行更新,因為設定將發生變化,並且還將有一個內建編輯器。
@薩姆加德納@克里斯_基希伯格@kemal_oflus凱末爾要求我幫忙出版以滿足短期需求。我確實同意我們需要 JMP 18 的 Python 範例,並感謝一些幫助。
這是一個腳本集合,可用於說明 JMP 18 中的新 Python 整合。感謝所有幫助開發這些範例的人,包括 Kemal Oflus、Sam Gardner 和 Paul Nelson。
有關使用 JMP 18 中新的 Python 整合與 R 整合的範例,請參閱此配套文章:
C80.1 JMP Python 使用案例 - 與 R 整合的範例
************************************************** ******** ****************************************** ********
對話與回歸.py
- 這是使用 Python 整合進行 JMP 目前不執行的分析(MLP 或多層感知器模型)的範例
- numpy 用於建立數組
- pandas 用於建立資料框
- sklearn 用於線性迴歸和多層感知器
- sklearn 用於將建模資料拆分為訓練集和測試集
- sklearn 用於標準化建模數據
- JSL 和 run_JSL() 功能用於開啟資料表、建立列選擇器對話方塊並將所選資料傳遞給 Python
- 請參閱 JMP 日誌以了解結果
- 結果也儲存為 JMP 表,並使用圖形產生器繪製線性迴歸模型和 sklearn 的 MLP 模型的實際與預測圖
************************************************** ******** ****************************************** ********
梯度Bar.py
- Python 類,將資料和功能捆綁在一起的物件類型。
- Python def 關鍵字用於定義函數。
- Pycairo 套件提供 cairo 圖形庫的綁定。
- 使用 Python 整合建立 JMP 本身不支援的圖表。在這種情況下,將產生範例梯度長條圖。
- 將 Python 產生的圖形儲存到 .png 文件,並在 JMP 視窗內的 JMP 圖片框中顯示該圖形。文件儲存到 $TEMP,可以透過在 JMP 腳本視窗中執行 Show(Convert File Path("$TEMP")) 來確定該文件,然後查看 JMP 日誌。
************************************************** ******** ****************************************** ********
hdf5_import.py
- 使用 Python 整合匯入 JMP 本身不支援的資料格式。在本例中,資料是許多科學學科中流行的 hdf5(分層資料格式)。
- h5py包支援導入hdf5檔。
- 一些 hdf5 資料被複製到 JMP 表並在圖形產生器中繪製(這是光譜資料)。
************************************************** ******** ****************************************** ********
jmp_slice.py
- Python 中的切片。
- 在 JMP 資料表上使用 Python 的切片功能。
- 在 Python 中開啟 JMP 表並存取表中單元格的值。
************************************************** ******** ****************************************** ********
鑲木地板.py
- 使用 Python 整合匯入 JMP 本身不支援的資料格式。在這種情況下,數據是鑲木地板數據。
- PyArrow 套件支援匯入多種不同格式的數據,包括 parquet 檔案。
- 建立 JMP 表並將 parquet 檔案的內容儲存到 JMP 表中。這是透過迭代 pq_Table 中的列並使用輔助函數一次向 JMP 表新增一列來完成的。
- Python def 關鍵字用於定義函數。在這種情況下,函數接受參數並傳回一個物件。
- 使用 jmp.run_jsl() 設定 JMP 表的列屬性。
************************************************** ******** ****************************************** ********
本機導入.py
- 導入本地使用者編寫的套件。在本例中,該包稱為 dt2pandas。
- 這是一個本地包,這意味著它與導入它的腳本位於同一目錄中。
- 本地包有一個定義的函數,稱為 dt2df。這會根據 JMP 資料表在記憶體中建立 pandas 資料幀。
************************************************** ******** ****************************************** ********
pyFromJSL.py
- 使用 Python Submit() 功能。
- 使用 Python Execute() 功能。
- 從 JSL 定義的函數呼叫 Python 定義的函數。
- 將 JSL 嵌套在 Python 中的 JSL 中。
- 定義可用於操作 JMP 物件的 Python 函數。在本例中,Python 函數使用加號運算子。在 Python 中,加號運算子在處理不同類型的資料時表現不同。對於數字數據,plus 會傳回總和。對於字串和列表,plus 傳回連接的字串或列表。對於向量和矩陣,plus 會傳回每個元素的總和。
- 可以使用 Python Execute() 在 JSL 中呼叫 Python 中定義的函數。
- 這可以透過建立呼叫 Python 函數的 JSL 函數來進一步概括。
- JSL和Python程式碼可以嵌套。在如下所示的範例中:
- 該腳本是使用 Python Submit() 呼叫 Python 的 JSL。
- Python 程式碼使用 jmp.run_jsl() 呼叫 JSL。
- 最終結果是 JSL 呼叫 Python,Python 再次呼叫 JSL。
- JSL 關聯數組和 Python 字典。在下面的範例中,使用 Python Submit() 將在 JSL 中建立的關聯向量傳遞給 Python。在 Python 中,關聯向量成為 Python 字典。
************************************************** ******** ****************************************** ********
數組處理.py
- Python 列表、陣列和 numpy 陣列。
- 將列表、陣列和 numpy 陣列中的資料編組到 JMP 資料表。
- 關於資料類型以及與 JMP 表的兼容性的注意事項
- 關於 None 和 NaN 數據以及 JMP 表的注意事項
- 使用切片和 JMP 表
- 指向資料的指標和 Python 緩衝區約定
- 使用 run_jsl() 定義列公式和格式
- 列表、陣列和 numpy 陣列上的加號和星號運算子的 Python 約定
************************************************** ******** ****************************************** ********
我還有很多可以分享的例子。其中許多是在我建立和測試功能時創建的。在這種情況下,大多數是基本功能,而不是高級統計數據。
嗨@Paul_Nelson ,更多的例子會非常有用。我們可以安排一次會議來看看您有什麼嗎?我將圍繞它們構建一些文檔。
是的,我們可以安排一次會議。由於我剛從英國回來(曼徹斯特度假後一周),所以本週我仍在趕進度。