Jupyter Notebook は、もともとデータ サイエンティストやエンジニアが Python プログラミング言語を使用してデータの操作を簡素化できるように開発された優れたツールです。実際、ノートブックはインタラクティブな性質を備えているため、開発環境、コンパイル、パッケージ化などをセットアップせずに、コードの結果をすぐに確認するのに最適です。この機能は、開発スキルがデータ操作の専門知識よりも重要視されていたデータ サイエンス、機械学習、統計モデリングでの採用において非常に重要でした。
以下は Jupyter Notebook の利点の一部です
要約すると、次のように言えます
Jupyter ノートブックは、初期の調査から本番環境に対応したコードに至るまで、開発プロセスを合理化し、柔軟性とリアルタイムのフィードバックを提供します。
Jupyter ノートブックが提供する利点を考慮すると、ソフトウェア開発者がこのようなノートブックのアプローチを使用して、たとえばプロジェクトの ユース ケース テスト を開発したり、役立つ インタラクティブなハウツー[ を提供したりするのは素晴らしいことです。 &&&]。
ここでの質問は次のとおりです:
Python 以外のプログラミング言語に Jupyter Notebook を使用することはできますか?答えは
YES?.
ジュピターのアーキテクチャカーネル コンセプトを通じて複数のプログラミング言語をサポートするように設計されています。以下の図を参照してください。
カーネルは、Jupyter ノートブック サーバーがノートブック ドキュメント (.ipynb) 内でユーザーによって記述されたコードのブロックを評価する方法であるため、選択したプログラミング言語のコードを評価できるカーネルがあれば十分です。 Jupyter Notebook でサポートされています。
もちろん、Jupyter カーネルがサポートできる潜在的なプログラミング言語はすべて Read-eval-print Loop (REPL) 機能をサポートする必要があることは簡単に推測できます。
Python ONE 以外の Jupyter カーネルはありますか?答えは
はい?です。
最近、私は Langgraph4J に取り組んでいます。これは、Langchain によるエージェントおよびマルチエージェント ワークフローの作成に使用される Javascript ライブラリである、より有名な Langgraph.js の Java 実装です。興味深い点は、[Langchain.js] が DENO Jupiter Kernel を利用した Javascript Jupyter ノートブックを使用して How-To を実装および文書化していることです。
そこで、同じアプローチを Java でどのように使用する (またはシミュレートする) かというジレンマに直面しました。そして、JDK 9 バージョンからはJava の REPL を有効にする JShell。
JShell に基づく Java 言語用の Jupyter カーネル。 Jupyter メッセージ仕様バージョン 5.4 を実装しており、Java = 22.それは素晴らしいです。使い始めて、すごい!?。その機能のいくつかを見てみましょう。以下に最も代表的なものをまとめました:が必要です。
Java Jupyter ノートブックの機能
通常の Java を書くことができます。var 結果 = 2 2; 結果
var result = 2 2; result4// クラスを含む レコード Complex(double a, double b) { public Complex add(Complex c) { return new Complex(a c.a, b c.b); } } 複素数 x = 新しい複素数(10,20); x.add(new Complex(1,1))
var result = 2 2; result複雑[a=11.0, b=21.0]// メソッドも実装可能 int add(int a, int b) { b を返します。 } 追加(2,3)
var result = 2 2; result5魔法のコマンド
Java コードのほかに、セルにはカーネルによって実装される特別なコマンドを含めることができます。これをマジックコードといい、マジックラインとマジックセルの2種類があります。
// この時点でこのノートブックに定義されている型をリストするよう JShell に要求するマジックライン %jshell /types
マジックラインは、先頭に%が付いている行です。プレフィックスの後には、マジック コマンドとオプションのパラメータが続きます。以下はマジックラインの例です:var result = 2 2; result| レコードコンプレックスマジックコマンド補間
場合によっては、より動的な方法でマジック コマンドを実行する必要があることがあります。これは魔法の補間を使用して行うことができます。
マジック補間は、\{ で始まり } で終わるマークされたコンテンツの補間です。これらのマーカーで装飾されたコンテンツはすべて jshell で評価され、その結果が文字列に変換され、マジック コマンドの装飾されたコンテンツが置き換えられます。
文字列バージョン = "1.0.2";var result = 2 2; result�pendency /add com.github.javafaker:javafaker:\{version}
var result = 2 2; result依存関係の追加 com.github.javafaker:javafaker:1.0.2依存関係の管理 ?
「pendency /add」を使用して依存関係を追加でき、すべての依存関係を追加した後、「pendency /resolve
」を呼び出すことができます。
�pendency /add com.github.javafaker:javafaker:1.0.2 �保留/解決var result = 2 2; result依存関係の追加 com.github.javafaker:javafaker:1.0.2依存関係の解決
追加すると、依存関係をインポートして使用できます。
解決されたアーティファクト数: 5
クラスパスに追加: /home/ati/work/rapaio-jupyter-kernel/target/mima_cache/com/github/javafaker/javafaker/1.0.2/javafaker-1.0.2.jar
クラスパスに追加: /home/ati/work/rapaio-jupyter-kernel/target/mima_cache/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar
クラスパスに追加: /home/ati/work/rapaio-jupyter-kernel/target/mima_cache/org/yaml/snakeyaml/1.23/snakeyaml-1.23-android.jar
クラスパスに追加: /home/ati/work/rapaio-jupyter-kernel/target/mima_cache/com/github/mifmif/generex/1.0.2/generex-1.0.2.jar
クラスパスに追加: /home/ati/work/rapaio-jupyter-kernel/target/mima_cache/dk/brics/auTomaton/auTomaton/1.11-8/auTomaton-1.11-8.jarcom.github.javafaker.Faker をインポートします。 var fader = 新しい Faker(); faker.name().fullName()
var result = 2 2; resultヘイリー・アンダーソン競合する依存関係の解決
競合がある場合は、オプションで管理できます。競合がある例を見てみましょう:
�pendency /add com.google.guava:guava:20.0 --optional �pendency /add com.google.inject:guice:4.2.2 �pendency /add com.google.guava:guava:25.1-android �保留/解決
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3