JMP 18 ofrece una nueva forma de integrarse con Python, proporcionando un entorno Python independiente diseñado para usarse con JMP. Además, JMP ahora cuenta con un editor Python nativo y paquetes Python específicos para JMP. Este entorno Python en JMP ha mejorado la conectividad y la interacción con JMP, lo que significa que usar Python con JMP nunca ha sido tan fácil.
Familiarícese con el entorno de desarrollo integrado (IDE) de Python en JMP 18 y aprenda cómo
- Localice el IDE de Python.
- Ejecute un ejemplo sencillo.
- Instalar paquetes de Python.
- Ejecutar script JSL desde Python.
- Envía una variable de Python a JSL.
- Cree una tabla de datos JMP desde Python.
Comencemos con cómo encontrar el nuevo editor de Python.
A continuación, veamos un ejemplo simple en Python y cómo revelar el registro incrustado:
Once you've determined which packages are installed, watch how to install a new one and how to upgrade pip. </CODE></P>
<P></P>
<iframe src="https://players.brightcove.net/6058004218001/default_default/index.html?videoId=6357446770112" width="1036" height="540" allowfullscreen allow="encrypted-media"></iframe>
<P></P>
<P>El código que utilicé está a continuación:</P>
<PRE class="bp-text bp-text-plain hljs bp-is-scrollable" tabindex="0"><CODE class="bp-text-code py"><SPAN class="hljs-selector-tag">import</SPAN> <SPAN class="hljs-selector-tag">jmp</SPAN>
<SPAN class="hljs-selector-tag">import</SPAN> <SPAN class="hljs-selector-tag">jmputils <SPAN class="hljs-selector-id">#listing</SPAN> packages installed jmputils<SPAN class="hljs-selector-class">.jpip</SPAN>(<SPAN class="hljs-string">'list'</SPAN>) <SPAN class="hljs-selector-id">#Installing</SPAN> function jmputils<SPAN class="hljs-selector-class">.jpip</SPAN>(<SPAN class="hljs-string">'install'</SPAN>,<SPAN class="hljs-string">'numpy </SPAN><SPAN class="hljs-string">pandas'</SPAN>) <SPAN class="hljs-selector-id">#Upgrade</SPAN> pip jmputils<SPAN class="hljs-selector-class">.jpip</SPAN>(<SPAN class="hljs-string">'install --upgrade'</SPAN>, <SPAN class="hljs-string">'pip setuptools'</SPAN>)</SPAN>
A continuación, aprendamos sobre la función jmp.run_jsl que encapsula un script JSL en Python.
El código de Python de ejemplo que utilicé es el siguiente:
<SPAN class="hljs-selector-tag"><SPAN class="hljs-keyword">import</SPAN> jmp <BR />jmp.run_jsl(<BR /> '''<BR /> //this is a JSL comment<BR /> Open ("$Desktop/Wafer Stacked.csv")<BR /><BR /> '''<BR />)</SPAN>
Ahora imaginemos que se ha importado una tabla de datos CSV con Pandas a Python. Si queremos enviarla al script JSL como variable, podemos usar la función Get de Python y aprovechar las funciones JSL, como Graph Builder.
El código es el siguiente:
<SPAN class="hljs-keyword">import</SPAN> jmp
<SPAN class="hljs-keyword">import</SPAN> pandas <SPAN class="hljs-keyword">as</SPAN> pd
pd_dt= pd.read_csv(<SPAN class="hljs-string">"Wafer Stacked.csv"</SPAN>)
<SPAN class="hljs-keyword">print</SPAN> (pd_dt.head());
jmp.run_jsl(<SPAN class="hljs-string">''' jmp_dt= Python Get (pd_dt); jmp_dt<< Graph Builder( Size( 567, 444 ), Show Control Panel( 0 ), Show Legend( 0 ), Variables( X( :X_Die ), Y( :Y_Die ), Color(:Defects) ), Elements( Heatmap( X, Y, Legend( 5 ) ) ) ); '''</SPAN>)
Finalmente, crearemos una nueva tabla de datos JMP con Python y el módulo "jmp". En este ejemplo, utilizo un archivo csv y el paquete pandas, pero esto se puede aplicar a cualquier otro tipo de archivo, especialmente a aquellos que no se pueden abrir directamente en JMP.
Hola,
No estoy seguro de estar en la sección correcta. Me gustaría crear un complemento para mi script de Python, pero no funciona. ¿Es posible? ¿Cómo?
Gracias de antemano,
Ahmed
Hola @AhmedMetroEM
Sería mejor plantear esa pregunta como un nuevo hilo en la sección de Discusiones de la comunidad. Así, será más fácil para otros con intereses similares encontrarla: https://community.jmp.com/t5/Discussions/bd-p/discussions
Puedes etiquetarme en el cuerpo del mensaje con mi ID de usuario y @ antes para que reciba una notificación de tu pregunta. Así podré encontrarla fácilmente y responder allí, ya que otros también podrían querer participar.
Respuesta corta: diría que en general sí, todo es cuestión de detalles.
#adding all columns
for i in range(len(pd_dt.columns)):
jmp_dt.new_column(pd_dt.columns[i],jmp.DataType.Character)
jmp_dt[i]=pd_dt[pd_dt.columns[i]].astype(str)
Esta versión reducida es adecuada para tablas de datos pequeñas.
Al acceder a columnas de tablas de datos grandes, parece esencial envolver el código con Tabla de datos de inicio/fin .
Python en JMP: Mejores prácticas para convertir columnas de dataframe a datatable e implicaciones en la velocidad de cálculo.
[Para la transferencia masiva de datos en JMP19, utilice dt = jmp.from_dataframe(pandas_df)]