Jupyter notebook是一款学习和科研的神奇

电子说

1.3w人已加入

描述

Jupyter notebook是一款学习和科研的神奇,相信很多小伙伴已经利用它在学术科研、研究开发的道路上收获了便捷易用、可视直观的优点。但除了可以在浏览器编辑运行代码、一系列畅爽的魔法命令外,jupyter还有众多基于js开发的拓展插件能帮助我们事先更加自如和高效的使用,让我们在科研的道路上如虎添翼、健步如飞。

1. 自动补全

(Hinterland)

在通常情况下jupyter中实现代码补全需要主动按tab键,但有的时候会很期待jupyter可以实现如IDE一般的自动补全显示,是需要输入指令的头部所有符合的指令变换跃然屏幕任君挑选。有了Hinterland之后,你就可以享受与其他流行的IDE(如PyCharm和VCS)一样顺滑的自动代码补全了,便捷高效想到就能补到。

代码

https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/nbextensions/hinterland/README.html

2. 单元格分置

(Split Cells Notebook)

从vim到sublime,各类编辑器都支持多窗口编辑、查看代码。如果notebook可以实现这样的功能就可以在宽屏显示器上自由的施展拳脚了。notebook中split功能为我们贴心地准备了这个功能,只需轻轻一点就可以将原先垂直顺序排列的单元格变成水平排列,更好的查看与分析代码和计算结果。通过该扩展插件可以将Notebook的单元格分开,再将它们相邻放置。

代码

3. 插入常用代码片

(Snippets)

在代码中存在很多可以复用的代码片,比如说每次程序开头都需要import的一大堆包和一些常用的数据操作、绘图指令。为了便捷的复用这些指令,Snippets为我们提供了一键插入代码片段的功能,从此再也不用辛苦的输入那些常用的指令,甚至copy-paste都免了,轻轻一点代码出现!此扩展插件为Notebook工具栏添加了一个下拉菜单,允许将代码片段单元格轻松插入当前Notebook中。

代码

4. 折叠单元格

(Collapsible Headings)

代码写的太长、注释写的太多、整个note太乱了,又长又没有清晰的结构该如何是好呀?Collapsible Headings允许Notebook根据标题来分隔的可折叠部分。如果Notebook中有很多不整洁的代码,我们就可以折叠起来免除了反复滚动的烦恼,同时也为整个notebook带来了整洁的视觉体验。

代码

5.幻灯片放映

(Slideshow)

Notebooks是教学和编写可解释代码的有效工具。无论是给同学讲解代码还是给老板汇报进展,一份动态、顺滑、有代码有图片的报告总会带来很好的效果。 Jupyter Notebooks可轻松转换为幻灯片,将你的工作转换为图文并茂的生动报告,也许我们就不再需要PPT啦~

我们可以通过以下两个方式来实现:

· Jupyter的内置幻灯片

在你的notebook中,可以通过工具栏导航到 View → Cell Toolbar → Slideshow。

代码

这时每个单元格顶部都会出现一个浅灰色条,您可以根据不同的五种特性自定义幻灯片,其中幻灯片是主要的呈现形式,还包括可以上下滑动的自幻灯片和浮动的碎片。

代码

在设置完成后转到notebook所在的目录,执行以下代码:

代码

幻灯片将显示在本地8000端口。此外目录中将生成.html文件,您也可以从那里双击访问幻灯片。

代码

· RISE(Reveal.js  plugin)

jupyter的问题在于无法再运行幻灯片的时候运行代码,而RISE提供了边演示便运行的解决方案。RISE是Reveal.js — Jupyter/IPython Slideshow Extension的首字母缩写。 它利用reveal.js来运行幻灯片。这非常有用,因为它能在不必退出幻灯片的情况下运行代码。 使用如下命令进行安装:

代码

在适当的目录安装JS和 CSS:

代码

现在我们就会发现一个新的扩展,上面写着“Enter/Exit RISE Slideshow.”。

边演示便运行真的很爽,是时候向老板展示你真正的实力了。

代码

6. 魔法工具包

(Jupyter Widgets)

Widgets是在jupyter里具有代表性的多事件python对象,通常作为滑块、文本框等控件使用。Widgets可用于构建交互式图形用户界面。 通过以下命令来安装它们:

代码

其中包含了一系列优秀的可视化交互控件,从参数调整到文件遍历,从颜色拾取到绘图风格变换,丰富且有用的小工具你一定会喜欢的。

https://github.com/jupyter-widgets/ipywidgets/blob/1223d4128aebe6c8831a034a73d1546a91f5138a/docs/source/examples/Widget%20Basics.ipynb

交互控件

这是IPython中widgets最简单的使用方法。

交互功能(ipywidgets.interact)会自动为代码和数据创建用户界面(UI)控件。在数据探索过程中,通常要一次又一次地重新运行相同的单元,而每次都只会稍微改变下输入参数,这种致操作方式效率十分低下。理想解决方案是使用交互式控件,无需重写或重新运行代码即可更改输入。 使用IPython widgets(ipywidgets),您可以使用一行代码构建交互式控件。该库允许我们将Jupyter Notebooks从静态文档转换为交互式仪表板,非常适合数据的探索和可视化数据。

代码

我们可以使用 @interact 修饰器快速将任何普通函数转换为交互式控件,例如改变x的取值:

代码

快速循环遍历所有图像,而无需重新运行单元程序。 如果调试卷积神经网络并想要检查网络错分类的图像,这招就很管用。

Widgets在数据探索方面的用途是多种多样的。 还可以用来便捷地分析两列数据间的相关性,对于数据科学家和统计学家十分有用。

代码

播放控件

Play widget能以一定速度按照整数序列来循环播放动画,并可以通过滑块的值来控制播放相关参数。

代码

日期选择器控件

日期选择器控件Date picker可在Chrome和IE Edge中使用,但目前暂时无法在Firefox或Safari中使用,因为它们不支持HTML日期输入字段。

代码

颜色选择控件

Color picker 可以调出调色板,供你选择最中意的颜色:

代码

表格控件

表格控件Tab可以构建类似excel的表格,便于展示和可视化数据:

代码

Widgets for Plots绘图控件

交互式控件对于选择数据绘制特别有用,我们同样可以使用@interact修饰器将数据可视化函数转为控件:

代码

这里,cufflinks+plotly的组合用来实现交互式绘图。如果绘图的更新速度有点慢,我们可以使用@interact_manual,手动点击按钮来进行更新。

Qgrid

Qgrid主要关注DataFrame对象。 它使用SlickGrid在Jupyter notebook中渲染pandas DataFrame。 这使您可以使用直观的滚动、排序和筛选控件来浏览DataFrame,还可以通过双击单元格来编辑DataFrame,可以便捷高效的查看dataframe中的数据:

代码

7. 视频/PDF/url插件

使用IPython的显示模块,您可以轻松地将URLs、pdf和视频嵌入到您的Jupyter Notebooks中。

代码

显示pdf,组会讲论文神器呀:

再来个视频佐证自己的观点吧:

8. Jupyter主题

原生的白色主题太扎眼了,好想用暗色系的主题保护眼睛,安心撸代码?就像你用的IDE概要或主题设置? 安装jupyterthemes就可解你的燃眉之急。

Jupyter也有同样的功能,这些主题还可以增强了代码的显示, 可以定制自己喜欢的字体字号和背景颜色。虽然主题数量不多,但用起来相当不错,以后也会越来越多。

写在最后

如果你对这些拓展功能跃跃欲试啦,那就赶快给你的jupyter添加想要的插件吧!插件安装连接请参考:

https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/install.html

还可以发掘源码进行学习,他日写出自己中意的插件:

https://github.com/ipython-contrib/jupyter_contrib_nbextensions/tree/master/src/jupyter_contrib_nbextensions/nbextensions

jupyterlab插件:

https://jupyterlab.readthedocs.io/en/stable/user/extensions.html

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分