赞
踩
文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
作者: 奔跑的鳄鱼
PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取
Jupyter Notebook作为一款经典的交互式编辑器,在视图数据等实时展示方面有其特有的优势,但是相比pycharm、sublime等编辑工具,Jupyter Notebook在开发过程中又显得有些“笨拙”,今天给大家介绍几个方法,让Jupyter Notebook用起来更加得心应手。
1).Nbextensions
Nbextensions相当于Jupyter的插件管理器,使用以下命令安装:
conda install -c conda-forge jupyter_contrib_nbextensions
安装成功后,在Home页面会多出一个Nbextensions选项卡(下图)。
进入Nbextensions选项卡后,发现这里罗列了大量Jupyter所支持的插件(下图),选中某个插件后,在页面下方会显示该插件的说明文档,勾选插件前面的选择框系统就会加载启用该插件。
有了Nbextensions,就能很轻松的对Jupyter中的其他插件进行管理。
2).Hinterland
Hinterland是jupyter中的自动补全插件,在Nbextensions中勾选该插件名称就能启用。
安装Hinterland后jupyter可以实现如IDE一般的代码自动补全显示,输入代码的头部字符后所有符合的指令都会显示出来以供选择,下图就是写代码过程中Hinterland的提示效果。
有了Hinterland之后,你就可以享受与其他流行的IDE一样顺滑的自动代码补全功能了。
3).Collapsible Headings
如果notebook中内容太多,在写代码的时候查看起来会非常不方便,Collapsible Headings插件实现的是一种单元格折叠的功能。对于一些当前不需要反复关注的代码,折叠起来不仅可以免除反复滚动的烦恼,还可以给整个notebook带来更加整洁的视觉体验。
Collapsible Headings的使用依赖于Markdown标签,我们以下图中的单元格为例进行演示。
Collapsible Headings插件启用后,在标签左侧会出现一个小的三角箭头,点击标题1左侧的箭头,会发现下面的所有内容都被折叠了起来(下图)。
而如果只点击标题2左侧的箭头,则只有标题2下的单元格进行了折叠(下图)。
Collapsible Headings所识别的标签作用域所遵循的规则与Markdown完全一致,这里不再进行详细说明。
4).Codefolding
如果说Collapsible Headings的作用是折一系列叠单元格,那Codefolding的作用就是折叠单元格中的代码。只不过Codefolding不会像Collapsible Headings一样自定义折叠区域和层级,它会自动识别处于同一层级的代码,就像pycharm一样。
Codefolding插件启用后在单元格代码的左侧会出现一些小三角箭头,下图这段代码是折叠之前的样子。
将pie.add折叠之后是这样的:
5).Notify
notify也是jupyter中非常实用的一个插件,它的作用是当某个单元格的代码执行完毕后,Jupyter会向我们发送提示通知。这个功能主要适用于一些一些耗时较久的任务,这样在运行代码期间我们就可以把它放在一边去做其他工作,当代码运行完毕后Notify就会提醒我们(下图)。
要想Notify真正启用,除了要在Nbextensions(jupyter的插件管理器)中Enable之外,还要在juypter的工具栏中设置参数(下图),其中:
Disabled:notify功能不启用
0:如果任务执行时间超过0秒,在任务执行完毕后给予提示
5:如果任务执行时间超过5秒,在任务执行完毕后给予提示,否则不提示
目前这一功能已经完美支持Firefox、Chrome和Safari浏览器。
6).%debug
调试是写代码不可避免的一个环节,jupyter也有他特有的调试模式——%debug。当代码出现异常后,输入%debug可以直接激活调试器跳到出现错误的地方,在这里还可以查看当前代码的变量情况,下面举个例子来进行说明:
上面这段代码由于计算中出现分母为0的情况,所以运行时会报错,这时在下一个单元格中输入%debug指令,jupyter就会进入调试模式。
进入调试模式后会直接跳转到异常发生的位置(下图),同时会出现一个ipdb文本框,这里可以输入变量或特定指令,例如输入程序中的变量a,就会返回当前位置相关的变量值;如果输入指令quit,则会退出调试模式。
%debug只是jupyter众多IPython Magic命令中的一个,在juypter中可以使用%lsmagic命令查看所有Magic命令,大家可以根据需要自行选用,这里不再展开介绍。
7).InteractiveShell
我们都知道jupyter中有一个很好用的功能,当把变量名称或没有定义输出结果的语句放在单元格的最后一行,无需print语句,jupyter就会显示变量值,尤其当使用Pandas DataFrames这一数据结构时,输出的结果更加整齐漂亮。
但是这一功能也有其缺点,即默认只能显示最后一行的变量结果,例如下面这段代码,虽然我们要分别查看df的头部数据和尾部数据,但jupyter只能输出尾部数据的结果。
其实这个问题解决起来非常容易,只需要使用下面这两行代码修改内核选项即可。
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity='all'
我们再来看看修改后的运行结果:
这样在需要查看多个变量时,就不必再把他们放到不同的单元格中运行了。
8).简单的问号?
没错,就是一个简单的问号“?”,在jupyter中就能实现快捷文档功能,使用方法就是在你想要查看的属性或方法之前加一个?,例如我们要查看python中的str()方法,就可以执行下图中的操作,jupyter会自动弹出一个窗口返回相关信息。
除了查看文档之外,这个?还可以查看程序中的变量类型。我们在写代码过程中经常需要查看某个变量是何种数据类型,通常我们会使用type()方法,在jupyter中使用?同样可以实现这一功能,而且返回的信息更加完善。
例如我们想要查看上一条内容中的df变量(下图),可以看到除了会返回数据类型信息之外,还会对该dataframe数据的一些基本信息进行描述,推动右侧的滚动条可以查看更多信息。
9).Multicursor
如果我们想让一段代码整体缩进可以把他们全部选中然后按下Tab键,而如果要集中删除一批缩进符,就要用到Multicursor功能了。
在jupyter中使用Multicursor功能,只需要按住Alt键然后拖动鼠标就可以了。通俗来讲,Multicursor的作用就是在普通文本中进行“列操作”,这个概念解释起来比较麻烦,我们就用一个例子来进行演示:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。