In dieser Präsentation werden die neuen und wichtigen Updates der Python-Unterstützung von JMP 18 beschrieben, die eine viel engere Integration mit Python und ein deutlich besseres Python-zentriertes Benutzererlebnis bieten. In JMP 18 können Sie:
Diese JMP-Funktionen für Python werden mit der Zeit erweitert, aber der aktuelle Schwerpunkt liegt auf kritischen Funktionen und In-Memory-Datenunterstützung. In dieser Präsentation erfahren Sie aus erster Hand mehr über die Änderungen und die Gründe dafür und können die neuen Funktionen erleben, die JMP-Benutzern zur Verfügung stehen. Erweiterbarkeit und Datenimportfähigkeit durch die Verwendung externer Python-Pakete werden besprochen und der Zugriff auf GPUs über die Python-Schnittstelle mithilfe externer Pakete wird demonstriert.
Hallo, ich bin Paul Nelson. Ich bin hier, um über JMP, Python und unseren nächsten Schritt zu sprechen. Nach einer der vorherigen Präsentationen im letzten Jahr haben wir beschlossen, dass wir uns verbessern könnten. JMP und Python bieten noch Raum für Verbesserungen, und darüber werde ich hier sprechen.
Die größte Herausforderung für die Kunden bestand darin, bei JMP 14 bis 17 die Python-Unterstützung zum Laufen zu bringen. Wenn es funktionierte, funktionierte es einfach einwandfrei. Allzu oft war das jedoch nicht der Fall. Bei zahlreichen Python-Distributionen und unterschiedlichen Umgebungen war das Testen für uns schwierig.
Anaconda konnte manchmal unter Windows zum Laufen gebracht werden, und virtuelle Python-Umgebungen konnten manchmal zum Laufen gebracht werden. Da jeder unterschiedliche Pythons hatte, konnte ein Skript nicht einmal von einer gemeinsamen Python-Version in der Umgebung des Benutzers abhängen.
Das Bearbeiten von Python-Code im JSON-Editor war schwierig und unangenehm. Eine Sprache, in der Codeblöcke durch Leerzeichen getrennt sind. Wenn Sie das als Zeichenfolge in JSL einfügen müssen, ist das eine Herausforderung. Die Fehlerberichterstattung in den alten JMP-Versionen von Python war unzureichend, was das Debuggen Ihrer Python-Skripte erschwerte.
Schließlich wurden die Datentabellen- und Matrixübertragungen über das Dateisystem durchgeführt, und bei einer Datentabelle erfolgte dies als CSV-Datei, was langsam ist, wenn Sie wirklich große Datenmengen haben. Große Klassen funktionieren gut, aber größere Datenmengen sind langsam.
Unsere Vision ist es, sicherzustellen, dass die Python-Integration einfach funktioniert. Keine Konfiguration erforderlich. Zu diesem Zweck haben wir eine Python-Version 3.115 und JMP 18.0 integriert und als Teil von JMP installiert. Es handelt sich um eine gemeinsame Umgebung, und alle Benutzer verfügen über dieselbe Python-Version mit derselben JMP-Version.
Wir sind noch einen Schritt weitergegangen und haben dafür gesorgt, dass der Datenfluss zwischen JSL und Python In-Memory-Übertragungen und kein Kopierzugriff auf den Speicher sind. Wir haben eine einladende und produktive Umgebung für Python-Programmierer geschaffen. Wir haben jetzt auch einen Python-Skripteditor mit Codefarbgebung und Syntaxhervorhebung.
Sie können reine Python-Skripte direkt vom Skripteditor aus ausführen und innerhalb der Python-Umgebung direkten Zugriff auf JMP-Daten und das Protokoll erhalten, JSL aufrufen und auf Daten aus Python zugreifen. Wir haben die Fehlerberichterstattung für das JMP-Protokoll und das eingebettete Protokoll erheblich verbessert.
Da es sich jetzt um eine gemeinsame Umgebung handelt, können wir sie testen und überprüfen. Unsere Umgebung ist dieselbe, wie Sie sehen sollten. Wir haben dem Scripting Index eine komplette Python-Kategorie hinzugefügt, um zu erklären und Beispiele dessen zu zeigen, was jetzt mit dem JMP-Importpaket und einigen anderen Dienstprogrammpaketen verfügbar ist.
Der andere Aspekt ist, dass wir dadurch die Möglichkeiten von JMP durch die umfangreiche Paketbibliothek von Python erweitern können. Wir versuchen nicht, eine 1:1-Alternative zu JSL zu erstellen. Stattdessen versuchen wir, eine vertraute und produktive Umgebung für die Python-Programmierung innerhalb von JMP bereitzustellen.
Dies ist eine Modernisierung, eine Überarbeitung und Generalüberholung. Einige der ursprünglichen Designentscheidungen für die Python-Integration von JMP stellten Einschränkungen dar. Wir haben alles versucht, um die durch die Änderung bedingten Schäden zu minimieren und gleichzeitig eine starke und stabile Grundlage für die Zukunft zu schaffen.
Es ist davon auszugehen, dass sich die Störungen auf den Übergang zu JMP beschränken. Der entscheidende Aspekt ist, dass wir jetzt nur noch die Python-Version unterstützen, die wir mit JMP ausliefern. Betrachten Sie es als eine private virtuelle JMP-Umgebung.
Außerdem haben wir in den Skripten die Art und Weise geändert, wie Python eine Datentabelle sendet. Es wird jetzt ein JMP-Datentabellenobjekt erstellt. Dies ist ein Live-Zugriff auf die JMP-Datentabelle. Mit der Kopie im Arbeitsspeicher können Sie die vorhandene Tabelle bearbeiten und ändern. Es handelt sich nicht mehr um eine Kopie.
JMP 14 bis 17 haben ein Pandas DataFrame-Objekt erstellt, indem die Daten durch eine temporäre CSV-Datei im Dateisystem kopiert wurden. Für große Datenmengen. Der Export in CSV platzt, die Daten werden sehr groß und langsam. Außerdem besteht das Problem eines potenziellen Genauigkeitsverlusts, da Sie von einem Binär- in ein Textformat und wieder zurück von Text in ein Binärformat wechseln.
Wenn Sie wirklich dieselbe Funktionalität benötigen, haben wir in den Beispieldateien einen DT für Pandas Python bereitgestellt, der eine Funktion für zwei Pandas bereitstellt. Dies funktioniert intern genauso wie früher. Es erstellt eine temporäre CSV-Datei und weist Pandas an, die CSV-Datei zu importieren.
Es gibt auch ein Beispiel für die Konvertierung von JMP zu Pandas, das zeigt, wie aus einem JMP-Datentabellenobjekt ein Pandas-DataFrame im Speicher erstellt wird, das in Pandas jeweils eine Spalte aus einer JMP-Spalte erstellt.
Die Python Send Matrix war eine weitere Funktion, die über das Dateisystem geschrieben wurde. Sie schrieb eine Datei mit Doubles, die NumPy lesen konnte. Dies geschieht jetzt intern über den Speicher und es handelt sich um eine Live-Referenz auf die Matrix statt einer Kopie.
Der Großteil der JSL Python API bleibt unverändert. Die Änderungen bestanden hauptsächlich darin, veraltete Argumente und Funktionen zu entfernen, die zum Konfigurieren der ursprünglichen Python-Unterstützung zum Auswählen einer Python-Version verwendet wurden.
Die einzige API-Entfernung war die Python-Funktion „get graphics“, die ein Bild aus Matplotlib abgerufen hat. In unserem Skriptindex haben wir ein Beispiel, das genau zeigt, wie man dasselbe macht, was JMP intern nur mit JSL- und Python-Code gemacht hat. Zeigen Sie es schon. Mal sehen. Verlassen wir die Demo.
Hier haben wir JMP. Eines der Dinge, die ich zeigen möchte, ist, dass Sie Python-Symbole in den Symbolleisten sehen und im Menü „Neue Datei“ haben wir ein JSON-Skript, aber jetzt haben wir ein neues Python-Skript. Wir rufen den Python-Skript-Editor auf.
Wir können das eingebettete Protokoll anzeigen. Wir haben ein JMP-Importpaket. Importieren Sie JMP. Wir haben uns Mühe gegeben, sicherzustellen, dass wir Python-Dokumentzeichenfolgen eingefügt haben, damit Sie JMP Python ausführen können. Wir können dieses Skript ausführen. Sie werden sehen, dass wir die Objekte und Funktionen in diesem JMP-Importpaket der obersten Ebene dokumentiert haben.
Es gibt eine Menge Konstanten. Die meisten Spezialverzeichnisse sind alle vertreten. Das können wir also tun. Und jetzt mache ich es von Python aus. JMP öffnen. JMP, also, ich kann heute nicht tippen, JMP. BEISPIELDATEN. Plus. Big Boss. Und genau wie in JSL können wir die Codezeile auswählen und sie im Skript ausführen und sie. Und wir haben eine große Klasse.
Dies ist keine Kopie. Wir können dieses Objekt abrufen. Wir hätten TT gleich JMP öffnen können und hätten eine Referenz. Wir können aber auch TT gleich JMP.current eingeben. Das gibt uns eine Referenz auf die aktuelle Datentabelle.
Nun, wir können Dinge wie print TT tun. Das sagt uns, dass es eine große Klasse ist. Sie hat fünf mal 40 Spalten. Aber noch mehr Spaß können Sie machen. TT. Name. Und wir können Python-Slice-Operatoren verwenden. Ich sage ihm, dass es uns jeden anderen Namen in der Spalte „Name“ geben soll, beginnend mit Null.
Wir indizieren in Python, genau wie Python, beginnend mit Null. Unser Datentabellenindex ist spaltenweise. Da wir eine Art Spaltenformat verwenden und wenn wir jeden anderen Namen drucken, erhalten wir Katie, Jane, Lilly, James, Barbara, Susan, Joe und David.
Dies ist ein Live-Zugriff, also können wir Dinge wie … und wir können Dinge wie TT tun, und wir können entweder den Namen oder den Spaltenindex verwenden. Spalte, die wir drucken. Das gibt uns, wählen Sie. Hier ist Ihre … Ich habe eine ausgewählt, richtig, Lewis. Entschuldigung. Null Null. Ist Katie. Da die Datentabelle live ist. Sie können Katie machen
Warten Sie. Kleinbuchstaben. Groß- und Kleinschreibung. Jetzt sehen wir die Ausgabe in unserem eingebetteten Protokoll. Sie werden es bemerken. Wir haben es in der Datentabelle geändert. Dies gibt Ihnen die Möglichkeit, Datentabellen zu ändern, auf die Datentabellen auf Python-Art zuzugreifen und Sie können Datentabellen aus Python erstellen. Wir haben uns Mühe gegeben.
Wir haben jetzt den Skriptindex. Ich werde das zeigen… hier, wie ich schon sagte, ist „Grafiken abrufen“ veraltet. Es ist eigentlich keine gültige Funktion mehr in JMP, aber das Beispiel im Skriptindex zeigt Ihnen, wie Sie von dem, was Sie früher hatten, zu dem übergehen, wie wir es tatsächlich intern in JMP gemacht haben, um die Abbildung zu speichern, das Bild zu öffnen und ein neues Fenster mit dem Bild zu erstellen.
Eine der netten neuen Funktionen der Python-zentrierten Umgebung, die sie in der Python-Kategorie finden, ist eine Kategorie für sich. Das JMP-Importpaket hat Datentabellenobjekte. Es gibt Beispiele für jedes davon. Wir können neue Spalten erstellen, Zeilen hinzufügen und die Tabelle speichern. Die Eigenschaften darauf, wie z. B. das Abrufen von Tabellennamen. All das.
Dies würde eine neue Datentabelle erstellen, die von Python unterstützt wird. Wir haben auch JMP-Dienstprogramme. Wo Sie hinein können, oder wir können es verwenden, um das Pip-JMP auszuführen, da es seine eigene isolierte Umgebung erstellt hat. Wenn wir Pakete installieren, müssen sie in der isolierten Umgebung von JMP sein
Hoffentlich sollten Sie keine Probleme mit Paketen in JMP haben, die mit anderen Dingen oder anderen Python-Installationen in Konflikt geraten. Wir haben es isoliert gehalten. Und in diesem Fall, wenn Sie also müssen … haben wir create jpip, das ein Skript erstellt, das das Python-Pip-Skript umschließt, damit Sie es installieren können, oder Sie können es tatsächlich aus der JMP-Utils-Klasse innerhalb von Gem ausführen.
Hier zeigen wir die Liste der Pip-Befehle und diese werden ausgegeben. Rufen Sie pip auf und geben Sie die Liste der Pakete zurück, die ich in meiner Python-Umgebung installiert habe. Ein weiteres Beispiel: Hier können Sie tatsächlich Pakete installieren. Und das soll direkt aus JMP heraus ausgeführt werden.
Es gibt ein paar Einschränkungen, weshalb es create jpip gibt. Wenn ein Paket wie NumPy in den Speicher geladen wird, da es eine gemeinsam genutzte Bibliothek hat. Windows kann Sie daran hindern, dieses Paket zu aktualisieren. Es gibt einige Pakete, die kompiliert werden müssen. Diese müssen möglicherweise über die Befehlszeile ausgeführt werden.
Einige davon funktionieren möglicherweise, müssen aber möglicherweise über die Befehlszeile ausgeführt werden. Aus diesem Grund sollten Sie ein JPIP-Wrapper-Skript erstellen. Wenn Sie das ausführen, wird ein Popup angezeigt, in dem Sie ein Verzeichnis zum Schreiben der Datei angeben können. Wählen Sie dann einen Ordner aus, und es wird ein JPIP-Wrapper-Skript erstellt, das über die Befehlszeile ausgeführt werden kann.
Wenn Sie es dort ausführen, möchten Sie nach der Installation das Minus-Benutzerflag verwenden. Wir tun das automatisch für Sie, wenn es von hier aus aufgerufen wird. Es gibt auch eine JSL-Funktion, die die Installation ebenfalls ausführt. Die Installation von Python-Paketen ist sogar noch einfacher. Sie können einfach das JSL-Skript ausführen und es ruft im Hintergrund pip auf und richtet alle Umgebungsvariablen richtig ein, die erforderlich sind, um das Paket in die isolierte Umgebung von JMP zu stellen.
Los geht‘s. Dann können wir Ihnen noch ein paar weitere Demos zeigen. Das sind die einfachen Grundlagen. Aber wir haben auch … Teil dieses gesamten Prozesses war es, JMP Python-freundlicher zu machen und die Erweiterung der JMP-Funktionen durch zusätzliche Python-Pakete viel einfacher zu machen.
Einer unserer häufigen Support-Tracks, den die Leute wünschen, ist die Möglichkeit, Parquet-Dateien zu importieren. Diese Demo holt eine Tabelle von meinem Laufwerk. Eine, die ich aus dem Internet heruntergeladen habe. Richtig. Dann druckt sie die Form der Parquet-Datei aus und erstellt eine JMP-Datentabelle Spalte für Spalte aus den Daten in der Parquet-Datei. Wir werden die Protokolle löschen. Sehen Sie mir dabei zu.
Ich habe das Skript nicht ausgeführt. Ich muss einige Dinge markiert haben. So ist es. Dies war eine Parquet-Datei. Wir haben das Pyrrow-Parquet erstellt, als PQ es importiert hat. Die Eigenschaften der Parquet-Dateien. Es sind tausend Zeilen. Die Form besteht aus 13 Spalten mal tausend Zeilen. Das Schema zeigt dem Prinzen das Schema mit den Spaltennamen.
Hier ganz unten können wir eines der anderen Dinge zeigen: Wir sind mit den Dingen, die wir auf der Python-Seite verbessern möchten, noch lange nicht fertig, aber bis wir so weit sind, können Sie JSL aus Python ausführen.
Obwohl der Python-Code Dinge wie das Festlegen, Anzeigen von Breiten oder sogar das Ändern von Spaltentypen noch nicht unterstützt. Sie können eine neue Spalte erstellen, aber ihren Typ nicht von Python aus ändern. Das sind Dinge, die wir erreichen wollen, aber im Moment haben Sie eine Problemumgehung, mit der Sie JSL-Skripte von Python aus ausführen können, so wie Sie Python von JSL aus ausführen konnten.
Mit dieser erweiterten Umgebung können Sie nun zwischen den beiden hin- und herwechseln. Python kann JSL-Skripte ausführen. Diese Aufrufe in Python können dann in der JSL-Umgebung ausgeführt werden, sodass Sie die Aufrufe verschachteln können, um Dinge zu erreichen, die sonst nicht möglich wären. Das bedeutet, dass Sie eine Parquet-Datei mit einem Datentyp verwenden, den JMP nicht nativ verarbeiten kann. Aber wir haben das getan, indem wir ein Python-Paket importiert haben, um das zu unterstützen.
Eines der anderen Dinge, die mir am Herzen liegen. Ich bin kein großer Statistiker, aber ich bin Grafiker und andere Mathematiker. Hier wird Open Compute Language oder OpenCL verwendet. Wir haben das OpenCL-Paket importiert, um ein Mandelbrot-Fraktal zu erstellen. Lassen Sie uns Ihnen zuerst die CPU zeigen. Es wird mit der CPU gemacht. Das dauert tatsächlich etwa 16 Sekunden.
Das ist mühsam und Sie werden feststellen, dass JMP selbst langsam ist. Es reagiert nicht, weil Python an dieser Stelle die Kontrolle hat. Wenn Sie eine laufende Zelle tief in enge Schleifen hineinwarten lassen, können Sie die Kontrolle wiedererlangen. Dabei wird die CPU verwendet, um dieses Fraktal zu generieren.
Ändern wir es jetzt so, dass stattdessen die GPU ausgeführt wird, und führen das Skript aus. Boom. Es dauert den Bruchteil einer Sekunde, das Bild zu generieren, es zu speichern und in einem Skript zu öffnen und zu sehen, was wir sagen. Mit den GPUs dauerte es 16 Sekunden im Vergleich zu … aber wenn wir weit genug zurückgehen. Während ich hier präsentiere, dauerte es tatsächlich 32 Sekunden, um es auf der CPU zu tun.
Wenn Sie die GPU mit JMP nutzen möchten, können Sie das jetzt über Python tun. Wir haben sowohl PyOpenCL als auch PyCuda ausprobiert. Wenn Sie also eine Nvidia-Karte haben und mit Cuda arbeiten, können Sie PyCuda oder das allgemeinere OpenCL einbinden. Dadurch wird die Rechenleistung von JMP weiter verbessert, ohne dass die Leistung Ihres Desktops ungenutzt bleibt.
Wir können uns auch über Python mit SaaS verbinden. SaaS hat ein SaaS y.-Paket, und das haben wir in das … installiert. Und das ist ein Teil dieser Arbeit, die einer meiner Kollegen zusammengestellt hat. Lassen Sie uns die Protokolle löschen. Wir sehen tatsächlich, was ich habe, und können das Skript ausführen.
Es sammelt dies wie vorgesehen. Los geht‘s. Dieses verwendet tatsächlich JSL, um sicherzustellen, dass alle Python-Pakete, die möglicherweise zum Ausführen des Skripts erforderlich sind, bereits installiert sind, und Sie können das einrichten. Das ist ein Teil dessen, was Sie hier im Protokoll sehen, nämlich dass diese bereits erfüllt sind. Hier sind alle Ergebnisse, die beim Ausführen des Skripts beim Herstellen einer Verbindung zu SaaS zurückgegeben wurden. Unter Verwendung des SaaS Py-Pakets gehen wir das Protokoll noch einmal durch.
Das Skript wird im Protokoll angezeigt. Wie ich hier sagte. Wir haben Verbindungsinformationen, wo es eine Verbindung zu SaaS herstellt und die Produkte ausführt. Unsere Logistik. Dann werden die Ausgabewerte und das Ende der SaaS-Sitzung zurückgegeben.
Wir haben gehört, dass TensorFlow für manche interessant sein könnte. Hier ist ein ganz einfaches Beispiel. Falsch, ich habe TensorFlow installiert und es läuft von JSL aus, aber wir hätten diesen Code hier auch ganz einfach von Python aus ausführen können.
Es führt den Tensor-Flow aus und erstellt die Summe. Ich bin sicher, Sie werden sich viel kompliziertere Verwendungsmöglichkeiten ausdenken, als ich vorführen muss. Py Digest ist eine weitere. Es ist ein Bildschirm. Hier war ein Beispiel, das ich erstellt habe, um zu zeigen, eines war, um mehrere Dinge zu zeigen, einschließlich der Ausführung von JSL, wo es mir erlaubt, ein Verzeichnis mithilfe von JMPs „Pick Directory“ auszuwählen, das JSL „Pick Directory“ und das in einem Python-Skript zu verwenden. Das ist alles reines Python-Skript. Es erlaubt mir, ein Verzeichnis auszuwählen.
Erstellt eine Prüfsumme aller Dateien im Verzeichnis. Legt diese in eine SQLite-Datenbank ein und erstellt dann eine JMP-Datentabelle aus der Datenbank. Sie erhalten ein wenig Datenbankprogrammierung, ein wenig JMP, das Erstellen einer JMP-Datentabelle aus Python und das Ausführen von JSL aus Python.
Zu wählendes Verzeichnis. Ich habe hier viele Daten, also wählen wir einfach die Präsentation, den Parquet-Ordner oder den Auswahlordner. Jetzt haben wir eine Tabelle mit Prüfsummen. Sie haben die … erstellt. Sie prüft jede Datei im Verzeichnis, gab mir ihre Pfadnamen und eine MD5-Prüfsumme des Inhalts der Datei. Die Datenbank wurde erstellt. Die JMP-Datentabelle wurde aus Python erstellt und auch JSL verwendet, um die Spaltenbreiten festzulegen.
Auch das haben wir noch nicht implementiert, aber es steht auf der Liste. Aber Sie können Dinge von … aus tun, Sie können JSL-Dinge von Ihrem Python aus tun, wenn Sie das möchten.
Manche Leute möchten vielleicht R verwenden. Nun, in diesem Fall habe ich eine Verbindung mit unserem Server auf meinem Computer und in unserer Umgebung erstellt. Es war einfach einfacher, unseren Server innerhalb eines Windows-Systems für eine Linux-WSL-Umgebung auszuführen.
Ich habe hier einen R-Servedämon laufen. Und ich verwende den reservierten Client. Ich mache nur ein bisschen was, erstelle einen R-Vektor auf dem Server, summiere die Ergebnisse und führe dieses Skript aus. Wir haben eine Verbindung zu unserem Server hergestellt. Wir erhalten den Vektor und summieren alle Elemente, um sechs zu erhalten. Unser py2. Wir haben auch einige Beispiele dafür. Wenn Sie etwas wirklich Einfaches möchten, das über die Befehlszeile funktioniert, gibt es ein Beispiel, wie Sie mit einem Prozess R über die Befehlszeile ausführen können.
Zum Schluss noch die Statistik, bei der Jon Saul ihm geholfen hat. Erstellen Sie ein Beispiel, das das HDB-Scan-Python-Paket verwendet. Bei Matplotlib ist noch etwas zu beachten. Matplotlib unter Windows hat kein Grafik-Backend. Wenn Sie also eine Ausgabe sehen möchten, funktioniert unserer Erfahrung nach PyQt5 am besten.
Als Backend und. Wenn Sie Matplotlib auf dem Mac verwenden, erzwingen wir entweder AGG, das nicht-grafische Backend, wenn Sie es nicht installiert haben. Eines von PyQt5 oder PySide. Denn Matplotlib auf dem Mac wählt automatisch das Cocoa-Backend und es gibt einen Fehler, der dazu führt, dass JMP beendet wird, wenn Sie das letzte Fenster in Matplotlib auf dem Mac schließen.
Um uns davor zu schützen, erzwingen wir, wenn wir Matplotlib auf Ihrem System finden und ein Backend vorhanden ist, Matplotlib und erzwingen die Verwendung des Qt-Backends. Andernfalls stellen wir sicher, dass es sich um ein nicht-grafisches Backend handelt. Wir haben es zum Backend gemacht. Ich habe PyQt5 auf meinem Rechner. Mit diesem Beispiel führen wir einige Clustering-Vorgänge auf dem HDB-Scan aus.
Lassen Sie uns nun das eingebettete Protokoll anzeigen. Wir führen das Skript aus. Was wir erhalten, ist eine Abbildung, die in der Matplotlib-Tabelle der Daten generiert wird. Hier können Sie sehen, dass wir ein JMP geöffnet und die DT-Referenz verwendet haben. Das sind die Beispiele, die ich habe. Glauben Sie mir.
Ich werde die Präsentation noch einmal wiederholen. Unsere Prioritäten für die nahe Zukunft: Kontinuierliche Verfeinerung und Verbesserung. Verbesserung der Dateninteroperabilität zwischen JMP und Python. Derzeit besteht die Einschränkung bei der Bearbeitung von Spaltenänderungen darin, dass Sie Spalten beliebigen Typs erstellen können, aber nur numerische und Zeichenspalten, Ausdrucksspalten oder Statusspalten ändern und Werte abrufen können. Die Erstellung verknüpfter Tabellen erfolgt allesamt in der Zukunft.
Der Python-Skripteditor unterstützt zwar Codefärbung und Syntaxhervorhebung, aber noch keine automatische Einrückung. Auch das werden wir uns ansehen.
Ziel der Modernisierung war es, die JMP-Python-Integration sofort einsatzbereit zu machen. Sie sollten in der Lage sein, mit JMP und Python produktiv zu sein, ohne dass eine Konfiguration erforderlich ist. Wenn das nicht funktioniert, ist das eine große Herausforderung. Warum reduzieren Sie nicht die Zeit, die Python-Programmierer brauchen, um in JMP produktiv zu sein, und machen JMP zu einem Tool? Verbessern Sie die Fähigkeiten von JMP. Werden Sie zu einem analytischen Hub, da JMP mithilfe externer Python-Pakete einfach erweitert werden kann.
Verbessern Sie unsere Fähigkeit, verschiedene Datenformate zu laden, die andere Leute geschrieben haben, wie das Parquet-Format, bei dem wir, hdf5, das wir auch getestet haben. Es gibt viele Formate da draußen, mehr Formate, als ein Entwicklungsteam intern schreiben kann, aber auf diese Weise können Sie das Python-Paket einbinden und aus diesen Daten eine JMP-Datentabelle erstellen und diese Leistung innerhalb von JMP nutzen.
Vielen Dank für Ihre Zeit. Ich hoffe, Ihnen hat gefallen, was wir gemacht haben, und wir sind sehr an Feedback interessiert. Danke.