Jupyter Notebooks sind ein hervorragendes Tool, das ursprünglich entwickelt wurde, um Datenwissenschaftlern und Ingenieuren dabei zu helfen, ihre Arbeit mit Daten mithilfe der Programmiersprache Python zu vereinfachen. Tatsächlich sind Notebooks aufgrund ihres interaktiven Charakters ideal, um die Codeergebnisse schnell anzuzeigen, ohne eine Entwicklungsumgebung einzurichten, zu kompilieren, zu verpacken usw. Diese Funktion war von entscheidender Bedeutung für die Einführung in Datenwissenschaft, maschinellem Lernen und statistischer Modellierung, wo Entwicklungskompetenz weniger wichtig war als Fachwissen in der Datenmanipulation.
Im Folgenden sind einige der Vorteile des Jupyter-Notebooks aufgeführt
Zusammenfassend können wir sagen:
Jupyter-Notebooks optimieren den Entwicklungsprozess, von der ersten Erkundung bis zum produktionsreifen Code, und bieten Flexibilität und Echtzeit-Feedback.
In Anbetracht der Vorteile, die Jupyter-Notebooks bieten, wäre es für Softwareentwickler großartig, einen solchen Notebook-Ansatz zu nutzen, um beispielsweise USE CASE TESTS für Projekte zu entwickeln oder nützliche INTERAKTIVE HOW-TO-Anleitungen bereitzustellen &&&].
Die Frage hier ist:
IST ES MÖGLICH, EIN JUPYTER-NOTEBOOK FÜR ANDERE PROGRAMMIERSPRACHEN ALS PYTHON ZU VERWENDEN?
Die Antwort ist JA?.
Die Jupyter-Tools wurden so konzipiert, dass sie durch das Kernel-Konzept mehrere Programmiersprachen unterstützen, siehe Diagramm unten:
Der Kernel ist die Art und Weise, wie der Jupyter-Notebook-Server vom Benutzer in das Notebook-Dokument (.ipynb) geschriebene Codeblöcke auswertet. Daher reicht es aus, über einen Kernel zu verfügen, der den Code der Programmiersprache Ihrer Wahl auswerten kann Es wird vom Jupyter-Notebook unterstützt.
Natürlich lässt sich leicht ableiten, dass jede potenzielle Programmiersprache, die ein Jupyter-Kernel unterstützen kann, die Read-Eval-Print-Loop-Funktion (REPL) unterstützen sollte.
Die Frage wird:
GIBT ES ANDERE JUPYTER-KERNEL ALS PYTHON ONE❓?
Die Antwort ist Ja?.
In letzter Zeit habe ich an Langgraph4J gearbeitet, einer Java-Implementierung des bekannteren Langgraph.js, einer Javascript-Bibliothek, die von Langchain zum Erstellen von Agenten- und Multiagenten-Workflows verwendet wird. Interessant ist, dass [Langchain.js] Javascript-Jupyter-Notebooks verwendet, die auf einem DENO-Jupiter-Kernel basieren, um Anleitungen zu implementieren und zu dokumentieren.
Also stand ich vor einem Dilemma, wie ich den gleichen Ansatz in Java verwenden (oder möglicherweise simulieren) sollte, und ohne große Hoffnung begann ich, nach einem Jupyter-Kernel zu suchen, der Java unterstützt, wenn man bedenkt, dass es ab der JDK 9-Version die Einführung von gab JShell, die die REPL für Java aktiviert hat.
Nach ein wenig Recherche (und dem seltsamen Gedanken, mich in eine DIY-Implementierung zu stürzen) bin ich bei rapaio-jupyter-kernel gelandet, einem Jupyter-Kernel, der Java unterstützt? Im Projekt heißt es:
Jupyter-Kernel für Java-Sprache basierend auf JShell. Es implementiert die Jupyter-Nachrichtenspezifikation Version 5.4 und erfordert Java = 22.
Es ist erstaunlich; Ich fange an, es zu benutzen und WOW!?. Werfen Sie einen Blick auf einige seiner Funktionen. Nachfolgend habe ich die repräsentativsten zusammengefasst:
Sie können normales Java schreiben.
var result = 2 2; result4
// including classes record Complex(double a, double b) { public Complex add(Complex c) { return new Complex(a c.a, b c.b); } } Complex x = new Complex(10,20); x.add(new Complex(1,1))Komplex[a=11,0, b=21,0]
// methods can also be implemented int add(int a, int b) { return a b; } add(2,3)5
Magische Befehle
Eine Zelle kann neben Java-Code auch spezielle, vom Kernel implementierte Befehle enthalten. Diese werden magischer Code genannt und es gibt zwei Arten: magische Linien und magische Zellen.
Magische Zeilen sind Zeilen, denen % vorangestellt ist. Nach dem Präfix folgen der magische Befehl und die optionalen Parameter. Unten ist ein Beispiel für eine magische Zeile:// magic line which asks JShell to list the types defined in this notebook in this moment %jshell /types| Datensatz Komplex
Magic befiehlt Interpolation
Manchmal besteht die Notwendigkeit, einen magischen Befehl dynamischer auszuführen. Dies kann mithilfe der magischen Interpolation erfolgen.
Bei der magischen Interpolation handelt es sich um die Interpolation markierter Inhalte, die mit \{ beginnt und mit } endet. Jeder mit diesen Markierungen dekorierte Inhalt wird in jshell ausgewertet und das Ergebnis in einen String umgewandelt, der den dekorierten Inhalt im magischen Befehl ersetzt.String version = "1.0.2";
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3