JMP 18 offre un nuovo modo di integrarsi con Python, fornendo un ambiente Python indipendente progettato per essere utilizzato con JMP. Inoltre, JMP ora include un editor Python nativo e pacchetti Python specifici per JMP. Questo ambiente Python in JMP offre connettività e interazione migliorate con JMP, il che significa che usare Python con JMP non è mai stato così facile.
Prendi familiarità con l'ambiente di sviluppo integrato (IDE) Python in JMP 18 e impara come
- Individuare l'IDE Python.
- Esegui un semplice esempio.
- Installa i pacchetti Python.
- Esegui lo script JSL da Python.
- Invia una variabile Python a JSL.
- Crea una tabella dati JMP da Python.
Cominciamo con il vedere come trovare il nuovo Python Editor.
Ora vediamo un semplice esempio in Python e come rivelare il log incorporato:
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>Il codice che ho utilizzato è il seguente:</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>
Ora impariamo a conoscere la funzione jmp.run_jsl che incapsula uno script JSL in Python.
L'esempio di codice Python che ho utilizzato è il seguente:
<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>
Ora immaginiamo che una tabella dati CSV sia stata importata in Python con pandas. Se vogliamo inviarla allo script JSL come variabile, possiamo usare la funzione Get di Python e sfruttare le funzioni JSL come Graph Builder.
Il codice è il seguente:
<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>)
Infine, creiamo una nuova tabella dati JMP utilizzando Python e il modulo "jmp". In questo esempio, utilizzo un file csv e il pacchetto pandas, ma questo metodo può essere applicato a qualsiasi altro tipo di file, in particolare a quelli che non possono essere aperti direttamente in JMP.
Ciao,
Non sono sicuro di essere nella sezione giusta. Vorrei creare un componente aggiuntivo per il mio script python, ma non funziona. È possibile? Come?
Grazie in anticipo,
Ammazzato
Ciao @AhmedMetroEM
Il posto migliore sarebbe sollevare la questione come un nuovo thread nella sezione Discussioni della community. In questo modo è anche più facile da trovare per altri con interessi simili: https://community.jmp.com/t5/Discussions/bd-p/discussions
Puoi taggarmi nel corpo con il mio ID utente e @ prima, così ricevo una notifica per la tua domanda. Quindi posso trovarla facilmente e rispondere lì, perché anche altri potrebbero voler intervenire.
La mia risposta breve è: in generale direi di sì, è tutta una questione di dettagli.
#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)
Questa versione snella è adatta per tabelle di dati di piccole dimensioni.
Quando si accede a colonne di tabelle di dati di grandi dimensioni, sembra essenziale racchiudere il codice con Tabella dati inizio/fine .
Python in JMP: best practice per la conversione da colonna dataframe a colonna datatable e implicazioni sulla velocità di calcolo
[per il trasferimento di dati in blocco in JMP19, utilizzare dt = jmp.from_dataframe(pandas_df)]