Presentadores: @martindemel y @jthi
Quizás también quieras ver la grabación de la sesión del West Coast Scripter's Club sobre la integración de Python en JMP 18 de Paul Nelson.
Algunos comentarios de mis ejemplos.
La demostración de HDBSCAN que hice requiere JMP Pro debido al uso de la plataforma de incrustación multivariante de JMP.
Las partes naranjas son para JMP y las azules para Python

Principalmente estoy comenzando con la integración de Python en JMP, por lo que mi código Python definitivamente no es el más limpio, pero para un ejemplo rápido debería estar listo.
Utilizo Python Send() para enviar variables al lado de Python
Python Send(dt);<BR />Python Send(cluster_cols);<BR />Python Send(clustersize);<BR />Python Send(samples);<BR />Python Send(epsilon);
y luego Python Submit() para ejecutar el siguiente código
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
El ejemplo primero ejecuta la reducción de dimensiones (tsne o umap), hdbscan en dos columnas creadas, muestra el gráfico, configura el script de la tabla para recrear el gráfico, agrupa las columnas y establece los parámetros de HDBSCAN en las propiedades de la columna de notas CLUSTERS.

Como Python Get Graphics() ha quedado obsoleto, debe encontrar otras formas de obtener imágenes de Python a JMP. El ejemplo de JMP muestra cómo puede hacerlo guardando primero la imagen y luego usando Open() de JMP para cargar la imagen en JMP. Demostré cómo se pueden usar los módulos de Python io y base64 para cargar la imagen en 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);
Finalmente quiero señalar que hay muchas formas de realizar la transformación entre el marco de datos de Pandas y la tabla de datos JMP. Por ejemplo, puede realizar una transformación "directa" utilizando archivos .csv, utilizar list(df.iloc[:,2]) o df[col].values.tolist(). Hay ejemplos de todos estos y todavía no me he familiarizado con los diferentes métodos para poder hacer recomendaciones sobre lo que debería utilizar.
¡@Ressel acaba de agregar los archivos!