プレゼンター: @martindemelと@jthi
また、 ポール・ネルソンによるJMP 18のPython統合に関するWest Coast Scripter's Clubセッションの録画もご覧ください。
私の例についてのコメント
私が行ったHDBSCAN デモでは、JMP の多変量埋め込みプラットフォームを使用しているため、JMP Pro が必要です。
オレンジ色の部分はJMP用、青色はPython用です

私は JMP での Python 統合をほとんど始めたばかりなので、私の Python コードは確かに最もきれいなものではありませんが、簡単な例としては問題ないはずです。
Python Send()を使用して変数をPython側に送信する
Python Send(dt);<BR />Python Send(cluster_cols);<BR />Python Send(clustersize);<BR />Python Send(samples);<BR />Python Send(epsilon);
そしてPython Submit()で以下のコードを実行します
import hdbscan
import jmp
import numpy as np
import pandas as pd
df = pd.DataFrame()
for colname in cluster_cols:
df[colname] = np.array(dt[colname])
clusterer = hdbscan.HDBSCAN(min_cluster_size=int(clustersize), min_samples=int(samples), cluster_selection_epsilon=epsilon)
cluster_labels = clusterer.fit_predict(df)
df['Clusters'] = cluster_labels
col = dt.new_column("CLUSTERS", jmp.DataType.Numeric, jmp.ModelingType.Nominal)
dt[col.name] = list(df.iloc[:,2])
new_col = col.name
del df
この例では、まず次元削減(tsneまたはumap)を実行し、作成された2つの列に対してhdbscanを実行し、グラフを表示し、プロットを再作成するためのテーブルスクリプトを設定し、列をグループ化し、HDBSCANパラメータをCLUSTERSに設定します(列のプロパティに注意)。

Python Get Graphics() は廃止されたため、Python から JMP に画像を取得する他の方法を見つける必要があります。JMPの例では、最初に画像を保存し、次に JMP の Open() を使用して画像を JMP に読み込む方法を示しています。Python モジュール io と base64 を使用して画像を JMP に読み込む方法を示しました。
Names Default To Here(1);
Python Submit("\[
import base64
import io
import matplotlib.pyplot as plt
plt.clf()
plt.plot([1, 2, 3, 4])
plt.ylabel('some numbers')
plt.draw()
my_iobytes = io.BytesIO()
plt.savefig(my_iobytes, format='png', bbox_inches='tight')
my_iobytes.seek(0)
base64data = base64.b64encode(my_iobytes.read()).decode()
]\");
img = Open(Char To Blob(Python Get(base64data), "base64"), "png");
nw = New Window("test", img);
最後に、pandas データフレームと JMP データテーブル間の変換を実行する方法は多数あることを指摘しておきます。たとえば、.csv ファイルを使用して「直接」変換を実行したり、list(df.iloc[:,2]) または df[col].values.tolist() を使用したりすることができます。これらすべての例がありますが、私はまださまざまな方法に精通していないため、どの方法を使用すべきかを推奨することはできません。