只有想不到,「99」种扩展Jupyter功能的好方法
副标题[/!--empirenews.page--]
当有人说:「你可以用 Jupyter 扩展解决这个问题」,他们可能没有说清楚是什么样的扩展。Jupyter 生态系统是非常模块化且具有扩展性的,所以有很多种扩展方式。这个博客希望能总结最常用的 Jupyter 扩展,并帮助你发掘生态系统中的新功能。 JupyterLab 扩展 在 JupyterLab 中用 jupyterlab-drawio 扩展绘图 JupyterLab 是广受欢迎的 Jupyter Notebook「新」界面。它是一个交互式的开发环境,可用于笔记本、代码或数据,因此它的扩展性非常强。使用相关的扩展,可以添加一整套新功能,或者完全改变界面的运行方式。这些扩展是基于 TypeScript 火 JavaScript 写的,它们在浏览器里运行。 经典的 Jupyter Notebook 扩展 Jupyter Notebook 中的内容列表扩展 人们总是会想到经典的 Jupyter 笔记本界面,但实际上,你可扩展它的各个模块。这些 JavaScript 客户端可以让你按照自己的想法添加或改变功能,它们和 JupyterLab 扩展是一样的。 笔记本服务器扩展(serverextention) 和前两种扩展不同,Jupyter 笔记本的服务器扩展使用 Python 语言编写,并加入了很多服务端的功能,以下有两个主要的例子。 在 JupyterLab 中预览 LaTeX 内容 (1) 预览 LaTeX 第一个是一个为 JupyterLab 或经典的 Jupyter 笔记本提供的后端扩展——jupyterlab-latex。它可以在 JupyterLab 中预览 LaTeX 文件。它有一个和 JupyterLab 文本编辑器集成的扩展,以及一个后端服务器扩展,可以运行 LaTeX 命令,并在前端显示效果。 (2) 集成网络应用 第二个则是为提供服务端处理提供用户界面的扩展。因为服务网扩展可以作为任意 TornadoHTTP handler,因此任何你想得到的网络应用都可以写成一个 Jupyter 服务扩展。这里的例子是 npgipuller,提供了用户界面,可以将 git 代码仓库发布给用户。 (3 Jupyter 内核 你可能已经很熟悉在 Jupyter 笔记本中使用 Python 语言了,其实你可以在其中运行很多语言:R、Julia、JavaScript、Octave、Scala/Spark、C++、bash,甚至是 Matlab。这些都被称作内核。你可以为自己常用的编程语言写一个内核,将 Jupyter 协议直接用在上面,用 metakernel 项目打包,或者用 Xeus 打包成 C++依赖。内核制作好以后,它可以在任何一个 Jupyter 前端运行,包括经典笔记本、JupyterLab、 nteract、Jupyter 命令行等。 IPython Magics 如果你在笔记本里写过如%matplotlib inline 这样的命令,那么你已经尝试过 IPython 功能了。这些命令就像是 Python 中的宏(macro)——你可以写定制化的代码,将剩余的代码块独立出来,然后做自己想做的事情。 这种魔术函数从% 开始,然后通过% 后面的代码发挥功能。例如%cd somedirectory 可以切换 Python 运行中的文件目录。代码块功能从%% 开始,并运行后面的整个块。%%timeit 应该是最著名的,它可以提供运行代码块的时间。 你也可以构建自己的魔术函数。例如,ipython-sql (https://github.com/catherinedevlin/ipython-sql) 包提供%%sql 命令,可以和 sql 数据库无缝工作。然而,和之前列出的扩展不同,IPython 的命令只能在有 IPython 内核的环境工作。 IPython 小工具 用 drop down 玩转绘图功能。 IPython 小工具为 Jupyter 笔记本和 IPython 内核提供了 GUI 工具。这些工具可以让你在共享笔记本时,使用 GUI 调试,而非使用代码。如果和其他工具,如 voila 联用,你可以制作一个类似仪表盘一样的应用,其他人可以直接使用,甚至都不知道这是一个 Jupyter 笔记本。 你可以自己定制一些工具,为其他人提供领域内的动态可视化。例如,你可以用 ipyleaflet 制作动态地图,用 itk-jupyter-widget 动态地研究图像分割/配准任务,或者用 pythreejs 建模 3D 目标。 内容管理器 内容管理器决定了你读写文件时的操作。默认情况下,管理器从本地文件系统中读写文件,但是一个定制化的管理器可以从其它地方读写文件,如 Amazon S3 / Google Cloud Storage、PostgreSQL、HDFS 等。你可以通过 web 界面读写它们,就好像文件在本地一样。 我最喜欢的内容管理器是 Jupytext。在你读写.ipynb 的文件时,它会将其转换为.py 文件,并保持文件同步。在你 IDE 中对一个.py 文件进行了很多编辑后,可以自动在笔记本中看到这些更新,这是很神奇的事情。 Jupytext: .ipynb 或者 .py? 我全都要 扩展 JupyterHub JupyterHub 是多用户应用,可以使用于教学、实验室或者生产中。这些组织很可能有其它系统,所以 Jupyter 需要和这些系统集成到一起。以下是一些扩展 JupyterHub 的简单方法。 (1) 认证器 (编辑:揭阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |