8种使用Jupyter Notebook的惊人方法

点击蓝字 · 关注我们


Jupyter Notebook是一个强大的代码实验工具。它为REPL(“读取-求值-输出”循环)提供了一个可视化的图表界面。您可以混合使用Markdown和选定的编程语言(通常是Python)。它是数据科学家和机器学习从业人员开发和实验环境的默认选择。你听说过其他使用Jupyter Notebook的方法吗?让我们来探索8种可能会让你大吃一惊的使用Jupyter Notebook的方法!


软件包开发


Jupyter Notebook可用于Python软件包开发。这里有一个包nbdev。它可以通过以下方式大大加快软件包的开发:



GitHub页面上自动生成和发布文档


notebook上编写测试并使用GitHub Actions设置持续集成(CI)


PyPiconda上自动发布


Notebook和源代码之间的双向同步——你可以使用传统的IDE进行代码编辑,然后在Jupyter看到它



该软件包由Fast.ai开发。


Web应用


通过使用开源工具,有两种方法可以将JupyterNotebook转换成web应用程序,你可以使用:


voilaJupyter Notebook转变为一个独立的网络应用程序。交互式小部件是通过ipywidgets包添加的。这样,voila为每个用户使用Jupyter内核启动一个Tornado应用程序。


Mercury是另一种选择。它在不改变代码的情况下将交互式小部件添加到notebook中。YAML头用于定义notebook的在线状态。它使notebook转换为网络应用程序的过程非常容易——没有必要为用户界面编写额外的代码。Mercury的其他特征包括:



内置的应用程序库,您可以将多个notebook作为网络应用程序提供服务


HTMLPDF格式下载已执行的notebook


添加认证到notebook——只有登录用户可以看到notebook


notebook制作文件并提供下载


Mercury创建的用于将图像转换为草图的示例应用程序:



幻灯片


你可以用Jupyter Notebook创建幻灯片。如果您的演示文稿中有许多情节需要经常更新,那么这可能是一个救命稻草。您不需要手动执行此操作,只需执行带有幻灯片作为输出的notebook即可。用JupyterNotebook创建的演示文稿使用了reveal.js包。可以使用nbconvertMercurynotebook转换为幻灯片。需要在终端中调用nbconvert工具。转换命令如下:


如果您决定使用Mercury工具,那么您将需要在notebook中添加YAML配置。可以直接在您的notebook所在目录运行mercury runMercury将为您生成幻灯片。nbconvertMercury之间的重要区别在于,Mercury允许向演示文稿中添加小部件,并且甚至在演示文稿期间重新计算幻灯片。更重要的是,Mercury使得将演示文稿部署到云上变得非常容易。


当你用Jupyter Notebook构建幻灯片时,你可能会发现RISE 扩展非常有帮助。它允许您在写作过程中预览幻灯片。


书籍


你可以用Jupyter Notebook创建书籍!有一个叫做jupyter-book的开源工具,用于构建出版质量的图书和在线文档。书可以作为在线网站出版,也可以导出为PDF文件。这是一个完美的用于出版计算材料的工具。您可以编写代码并在内容中包含单元格的输出。


该工具的文档也是用jupyter-book创建的,可以在jupyterbook.org上获得。



博客


你可以用Jupyter Notebook创建一个博客。当然,您可以手动完成,例如将每个notebook导出到HTML文件(使用nbconvert),然后将所有文件作为静态网站发布。但使用Nikola框架可以做得更好。它读取你的notebook并生成静态网站。这个工具是使用MITLicense开源的。它有许多主题、标签、提要、存档、注释,并且可以很容易地扩展。



报告


您可以使用Jupyter Notebook自动生成报告,这可以通过多种方式实现:



你可以使用nbconvert把你的notebook转换成PDF格式,重要的是要知道nbconvert不仅可以转换到不同的格式,如HTMLMarkdownPDFLatex,而且可以执行notebook


你可以利用papermill执行参数化笔记本。如果您想创建多个版本的报告,它可能非常有用


你可以利用Mercurynotebook作为参数化报告共享。更重要的是,您可以安排报表的生成,并将最终报表导出为HTMLPDF文件


仪表盘


Jupyter Notebook中,可以使用Python轻松地创建交互式仪表板。Mercury工具可以将其转换成可以在互联网上共享的网络应用程序。更重要的是,Mercury有一个可用的schedule选项,允许notebook(仪表板)在预定义的时间间隔执行。它接受带有间隔定义的类似crontab的字符串。


用于notebook调度的YAML示例:




REST API


您可以使用Jupyter Notebooks来构建REST API端点,有两个包可以使用:


Jupyter Kernel Gateway可以用来定义单个notebook中的许多端点,例如:



上面的代码将在/hello/world地址创建GET端点,在/contact创建POST端点。


Mercury可以替代Jupyter Kernel Gateway。它有不同的方法——一个notebook是一个POST端点。Notebook名是端点名称。执行期间的notebook将响应保存为JSON文件。在notebook执行之后,服务器返回响应。您可以在文档中阅读有关此方法的更多信息。



小结


Jupyter Notebook是一个强大的工具,不仅为实验,而且为软件开发。有很多东西可以用它来创造。您可以使用Jupyter Notebook来创建Web应用程序、软件包、博客、仪表板、幻灯片、REST API、书籍和报告。代码和Markdown的混合以及丰富输出的连接提供了无限的可能性。



相关推荐

  • 优达学城深度学习(之四)——jupyter notebook使用
  • 只有想不到,「99」种扩展Jupyter功能的好方法
  • 作为一名40+的大龄程序员,被裁后我一点都不慌
  • Spring Boot 中 MybatisX 插件的简单使用教程
  • 谷歌发布云基础设施可靠性指南,帮助消费者做出正确决策
  • 通过Yarn工作空间将代码交付速度提高97%
  • Go语言实操笔记,从入职到最佳实践 | 极客时间
  • 降本30%,酷家乐海量数据冷热分离设计与实践
  • Python:多次登峰但槽点不断,2023年还值得学吗?| 极客时间
  • 真·生产力「GitHub 热点速览」
  • 当代人神奇消费观 | 每日一冷
  • 南水北调,要搞一个大动作
  • 微软的挣扎
  • 高中生怒斥“名师”,00后来整顿教育了
  • 负载均衡Nginx 之 Session 一致性
  • 家电捡漏:4L透明空气炸锅,到手200出头
  • 俄称将敦促联合国调查“北溪”管道被炸事件;朝鲜进行火箭炮射击训练;拜登体检显示“胜任工作” ,前白宫医生质疑 | 每日大新闻
  • 美国反腐“道德委员会”:只反小腐,不管大贪
  • 拜占庭将军问题和Raft共识算法讲解
  • 中国开源社区健康案例——Apache bRPC社区