@HydeMiller 、セットアップが変更され、エディタも組み込まれるため、これを JMP 18 用に更新する必要があるかもしれません。
@HydeMillerこれを更新するのを手伝うことができます。
@SamGardner @Chris_Kirchberg @kemal_oflusケマルは私に、短期間の必要に応じて出版を手伝ってほしいと頼んできました。JMP 18 用の Python サンプルが必要であることに同意し、それについての支援に感謝します。
これは、JMP 18 の新しい Python 統合を説明するために使用できるスクリプトのコレクションです。顧客向けプレゼンテーションでうまく機能した他の例があれば、ぜひ再投稿してください。Kemal Oflus、Sam Gardner、Paul Nelson など、これらの例の開発に協力してくれたすべての方に感謝します。
JMP 18 の新しい Python 統合を使用して R と統合する例については、次の関連記事を参照してください。
C80.1 JMP Python の使用例 - R との統合例
**************************************************************************************************
ダイアログとRegression.py
- これは、Python統合を使用して、JMPが現在実行していないMLPまたは多層パーセプトロンモデルの分析を実行する例です。
- numpyは配列を構築するために使用されます
- pandasはデータフレームの構築に使用されます
- sklearnは線形回帰と多層パーセプトロンに使用されます
- sklearnはモデリングデータをトレーニングセットとテストセットに分割するために使用されます。
- sklearnはモデリングデータを標準化するために使用されます
- JSLとrun_JSL()機能は、テーブルを開き、列選択ダイアログを構築し、選択したデータをPythonに渡すために使用されます。
- 結果はJMPログを参照
- 結果はJMPテーブルとしても保存され、グラフビルダーを使用してsklearnの線形回帰モデルとMLPモデルの実際と予測のプロットが作成されます。
**************************************************************************************************
グラデーションバー.py
- Python クラスは、データと機能をまとめたオブジェクトの一種です。
- 関数を定義するために使用される Python def キーワード。
- cairo グラフィックス ライブラリのバインディングを提供する Pycairo パッケージ。
- Python 統合を使用して、JMP でネイティブにサポートされていないグラフを作成します。この場合、サンプルのグラデーション棒グラフが生成されます。
- Python によって生成されたグラフを .png ファイルに保存し、JMP ウィンドウ内の JMP 画像ボックスにグラフを表示します。ファイルは $TEMP に保存されます。これは、JMP スクリプト ウィンドウで Show(Convert File Path("$TEMP")) を実行して確認し、JMP ログを確認します。
**************************************************************************************************
hdf5_import.py
- Python 統合を使用して、JMP でネイティブにサポートされていないデータ形式をインポートします。この場合、データは多くの科学分野で人気のある hdf5 (階層データ形式) です。
- hdf5 ファイルのインポートをサポートする h5py パッケージ。
- 一部の hdf5 データは JMP テーブルにコピーされ、グラフ ビルダーでプロットされます (これはスペクトル データです)。
**************************************************************************************************
jmp_slice.py
- Python でのスライス。
- JMP データ テーブルで Python のスライス機能を使用する。
- Python で JMP テーブルを開き、テーブル内のセルの値にアクセスします。
**************************************************************************************************
パーケット.py
- Python 統合を使用して、JMP でネイティブにサポートされていないデータ形式をインポートします。この場合、データは parquet データです。
- parquet ファイルを含むさまざまな形式のデータのインポートをサポートする PyArrow パッケージ。
- JMP テーブルを作成し、parquet ファイルの内容を JMP テーブルに保存します。これは、pq_Table 内の列を反復処理し、ヘルパー関数を使用して JMP テーブルに一度に 1 列ずつ追加することによって行われます。
- 関数を定義するために使用される 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 では、プラス演算子は、異なるタイプのデータで使用すると動作が異なります。数値データの場合、プラスは合計を返します。文字列とリストの場合、プラスは連結された文字列またはリストを返します。ベクトルと行列の場合、プラスは要素ごとの合計を返します。
- Python で定義された関数は、Python Execute() を使用して JSL で呼び出すことができます。
- これは、Python 関数を呼び出す JSL 関数を作成することによってさらに一般化できます。
- JSL および Python コードはネストできます。次の例では、
- このスクリプトは、Python Submit() を使用して Python を呼び出す JSL です。
- Python コードは jmp.run_jsl() を使用して JSL を呼び出します。
- 最終結果は、JSL が Python を呼び出し、Python が JSL を呼び出すというものです。
- JSL 連想配列と Python 辞書。以下の例では、JSL で作成された連想ベクトルが Python Submit() を使用して Python に渡されます。Python では、連想ベクトルは Python 辞書になります。
**************************************************************************************************
配列処理.py
- Python リスト、配列、NumPy 配列。
- リスト、配列、numpy 配列から JMP データ テーブルにデータをマーシャリングします。
- データ型とJMPテーブルとの互換性に関する考慮事項
- None および NaN データと JMP テーブルに関する考慮事項
- スライスとJMPテーブルの使用
- データへのポインタとPythonバッファ規約
- run_jsl() を使用して列の式と形式を定義する
- リスト、配列、NumPy 配列のプラス演算子とアスタリスク演算子の Python 規則
**************************************************************************************************
共有できる例もたくさんあります。その多くは、私が機能を構築およびテストしているときに作成されました。この場合、ほとんどは高度な統計ではなく、基本的な機能です。
こんにちは@Paul_Nelson 、もっと多くの例が本当に役立つでしょう。あなたの持っているものを確認するためのセッションをスケジュールできますか?それらを中心にドキュメントを作成します。
はい、セッションをスケジュールすることができます。イギリスから戻ってきたばかりなので(マンチェスターから1週間の休暇)、今週もまだ追いついています。