JMP 18 propose une nouvelle méthode d'intégration avec Python, offrant un environnement Python indépendant conçu pour être utilisé avec JMP. De plus, JMP dispose désormais d'un éditeur Python natif et de packages Python spécifiques. Cet environnement Python intégré à JMP améliore la connectivité et l'interaction avec JMP, simplifiant ainsi l'utilisation de Python avec JMP.
Familiarisez-vous avec l'environnement de développement intégré Python (IDE) dans JMP 18 et apprenez à
- Localisez l'IDE Python.
- Exécutez un exemple simple.
- Installer les packages Python.
- Exécutez le script JSL à partir de Python.
- Envoyer une variable Python à JSL.
- Créez une table de données JMP à partir de Python.
Commençons par savoir comment trouver le nouvel éditeur Python.
Ensuite, voyons un exemple simple en Python et comment révéler le journal intégré :
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>Le code que j'ai utilisé est ci-dessous :</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>
Ensuite, découvrons la fonction jmp.run_jsl qui encapsule un script JSL en Python.
L'exemple de code Python que j'ai utilisé est le suivant :
<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>
Imaginez maintenant qu'une table de données CSV a été importée avec Pandas dans Python. Pour l'envoyer au script JSL sous forme de variable, nous pouvons utiliser la fonction Python Get et exploiter les fonctions JSL telles que Graph Builder.
Le code est le suivant :
<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>)
Enfin, créons une nouvelle table de données JMP en Python et avec le module « jmp ». Dans cet exemple, j'utilise un fichier CSV et le package pandas, mais cela peut s'appliquer à tout autre type de fichier, notamment ceux qui ne peuvent pas être ouverts directement dans JMP.
Bonjour,
Je ne suis pas sûr d'être dans la bonne section. J'aimerais créer un module complémentaire pour mon script Python, mais ça ne fonctionne pas. Est-ce possible ? Comment ?
Merci d'avance,
Ahmed
Salut @AhmedMetroEM
Il serait préférable de créer un nouveau fil de discussion dans la section « Discussions » de la communauté pour cette question. Ainsi, elle sera plus facilement accessible aux personnes partageant les mêmes intérêts : https://community.jmp.com/t5/Discussions/bd-p/discussions
Vous pouvez me taguer dans le corps du texte avec mon identifiant et le @ pour que je reçoive une notification de votre question. Je pourrai ainsi la retrouver facilement et y répondre, car d'autres personnes pourraient également vouloir intervenir.
Réponse courte à l'avance : je dirais qu'en général oui, tout est une question de détails.
#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)
Cette version allégée convient aux petits tableaux de données.
Lorsqu'on accède aux colonnes de grandes tables de données, il semble essentiel d'encapsuler le code avec les balises Begin/End data table .
Python dans JMP : conversion d’une colonne de dataframe en colonne de datatable : bonnes pratiques et implications sur la vitesse de calcul
[Pour le transfert de données en masse dans JMP19, utilisez dt = jmp.from_dataframe(pandas_df)]