Jupyter Notebooks 是一个出色的工具,最初是为了帮助数据科学家和工程师使用 python 编程语言简化数据处理工作而开发的。事实上,笔记本的交互性使其非常适合快速查看代码结果,而无需搭建开发环境、编译、打包等。此功能对于数据科学、机器学习和统计建模的采用至关重要,在这些领域,开发技能不如数据操作专业知识那么重要。
以下是Jupyter笔记本的一些优点
总结一下我们可以说
Jupyter 笔记本简化了从初始探索到生产就绪代码的开发过程,提供了灵活性和实时反馈。
考虑到 Jupyter 笔记本提供的优势,对于软件开发人员来说,使用此类笔记本方法进行开发将非常有用,例如,项目用例测试或提供有用的交互式操作指南。
这里的问题是:
是否可以使用 JUPYTER Notebook 进行除 PYTHON 以外的编程语言❓?
答案是是?.
Jupyter 工具的架构旨在通过 Kernel 概念支持多种编程语言,请参见下图:
内核是 Jupyter 笔记本服务器评估用户在笔记本文档 (.ipynb) 内编写的代码块的方式,因此拥有一个可以评估您选择的编程语言的代码的内核就足够了Jupyter笔记本支持它。
当然,很容易推断出 Jupyter 内核可以支持的每种潜在编程语言都应该支持读取-评估-打印循环 (REPL) 功能。
问题变成:
除了 PYTHON ONE 之外还有 JUPYTER 内核吗❓?
答案是是?
最近我一直在研究 Langgraph4J,它是更著名的 Langgraph.js 的 Java 实现,Langgraph.js 是一个 Javascript 库,用于由 Langchain 创建代理和多代理工作流程。有趣的是,[Langchain.js] 使用由 DENO Jupiter 内核支持的 Javascript Jupyter 笔记本来实现和记录 How-Tos。
因此,我面临着如何在 Java 中使用(或可能模拟)相同方法的困境,并且没有太多希望,我开始寻找支持 Java 的 Jupyter 内核,因为从 JDK 9 版本开始,引入了为 Java 启用 REPL 的 JShell。
经过一番研究(以及尝试将自己投入 DIY 实现的奇怪想法),我找到了 rapaio-jupyter-kernel,它是一个支持 Java 的 Jupyter 内核。该项目指出:
基于 JShell 的 Java 语言 Jupyter 内核。它实现了 Jupyter 消息规范版本 5.4,并且需要 Java = 22。
太神奇了;我开始使用它,哇!?。看看它的一些特点,下面我总结了最具代表性的几个:
你可以编写普通的Java。
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))复数[a=11.0, b=21.0]
// methods can also be implemented int add(int a, int b) { return a b; } add(2,3)5
魔法命令
除了 Java 代码之外,单元还可以包含由内核实现的特殊命令。这些被称为魔法代码,有两种类型:魔法线和魔法细胞。
幻线是以%为前缀的线。前缀之后是魔术命令和可选参数。下面是魔术线的示例:// magic line which asks JShell to list the types defined in this notebook in this moment %jshell /types| 记录复杂
魔法命令插值
有时需要以更动态的方式运行魔法命令。这可以使用魔法插值来完成。
魔法插值是对以\{开头、以}结尾的标记内容进行插值。用这些标记修饰的任何内容都会在 jshell 中进行评估,并将结果转换为字符串,替换 magic 命令中的修饰内容。String version = "1.0.2";
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3