【Python】Jupyter Notebook的十大隐藏技巧--如何大大加速算法的迭代

作者:杰少

 Jupyter Notebook技巧大汇总

简 介

6a978c82f24cc8ab0a20ae21c14a569e.png

目前非常多的数据科学工作还是基于Notebook和Pycharm一起进行的,很多时候我们会在Notebook上面验证一些想法,然后再模块化代码写入到工程中,今天我们分享一些Notebook一些不为人知的技巧,方便大家的大大加速适用Notebook的效率。

  • 多个结果单个单元一起输出

  • 输出所有变量

  • 函数文档快速查询

  • Notebook的Debug

  • 代码快捷键

  • Notebook执行shell命令

  • Cell执行时间查询

  • Notebook写书

  • Notebook显示Slides

  • 所有Magic命令

十大Notebook使用技巧

ef3d276fd833d1dffd52294fc8985bc8.png

01

多个结果单个单元一起输出

使用Notebook的时候,我们知道Notebook一般只会看到最后一个需要输出的结果,而忽略前面的结果,例如:

  • 在同一单元格中有多行,“df.head(3)”,"df.tail(3)"和“df.shape”。那么我们往往只能看到"df.shape"的结果;

这可能并不是我们希望看到的,此处我们仅需加入两行代码,即可将多个结果一起输出。具体地,如下:

import pandas as pd
df = pd.DataFrame({'A':[1,2,3,4,5], 'B':['a','b','c','d','e']})
df.head(3)
df.tail(3)
df.shape
# (5, 2)
from IPython.core.interactiveshell import InteractiveShell 
InteractiveShell.ast_node_interactivity = "all"
df.head(3)
df.tail(3)
df.shape

aed41662002552ebb7d2cb03d02a0ebf.png

02

输出所有变量

在一些情况下,我们写了非常多的代码,这个时候有什么变量之类的可能已经记不清楚了,那么如何显示当前Notebook中有多少变量呢?只需要进行下面的操作就可以知晓所有的变量。

%whos

c365f57a01d496a7fab1d29a43082c8c.png

03

函数文档快速查询

有的时候我们想要知道一些函数的文档,尤其是当我们初次使用该函数,我们需要知道这个函数的功能和变量等信息,此时我们只需要在该函数前面加入?即可。

?print

f5089be7136479f131785602baae1a5a.png

04

Notebook的Debug

我们在Pycharm里面可以方便的Debug,但是在Notebook中我们往往依赖于直觉和不断的结果输出来调节代码,如何在Notebook中进行Debug呢?很简单,加入下面的一行代码即可。

%%debug

def _add_1(x):
    return x+1

print(_add_1(10))

d9020d2b3a629fa5d1189c0a84f6be0f.png

05

代码快捷键

  • Ctrl + Enter - 运行当前的cell

  • Shift + Enter - 运行当前的cell并进入下一个cell

  • Space: 向下滑动cell

  • a - 在上面插入一个cell

  • b - 在下面插入一个cell

  • m - 将cell转化为markdown

  • y - 将cell转化为code

  • x - 裁剪选中的cell

  • c - 对选中的cell进行拷贝

  • v - 对选中的cell进行黏贴

  • z - 撤销cell的删除

06

Notebook执行shell命令

在cell的前面加入感叹号"!"即可运行shell命令,例如现实当前目录下面的文件,

!ls

07

Cell执行时间查询

很多时候,在数据较大或者算法较慢的情况下,我们希望知道其运行时间,我们可以通过time工具包进行计算,但是在Notebook中,我们还可以通过下面的快捷指令进行计算。

%%time
for i in range(1000000):
    x = i+1
# CPU times: user 95.9 ms, sys: 2.66 ms, total: 98.6 ms
# Wall time: 98.1 ms

08

Notebook写书

Notebook除了可以写Markdown和代码,还可以排版成写书的感觉,只需要安装Notebook Extensions插件然后在Nbextension中选择对应功能即可。

! pip install jupyter_contrib_nbextensions
! jupyter contrib nbextension install --system

06f34760216287f7a8010f6431ccc6a0.png

09

Notebook显示Slides

可以通过“View->Cell Toolbar -> Slideshow”,然后为Notebook中的每个单元格选择幻灯片配置,创建Jupyter笔记本的幻灯片演示文稿。

最后,通过转到终端并键入以下命令,就可以看到Slides了。

pip install jupyter_contrib_nbextensions 
jupyter nbconvert my_notebook_name.ipynb --to slides --post serve

10

所有Magic命令

Notebook中存在非常多的magic命令,可以直接通过输入下面命令进行显示。

%lsmagic

# Available line magics:
# %alias  %alias_magic  %autoawait  %autocall  %automagic  %autosave  %bookmark  %cat  %cd  %clear  %colors  %conda  %config  %connect_info  %cp  %debug  %dhist  %dirs  %doctest_mode  %ed  %edit  %env  %gui  %hist  %history  %killbgscripts  %ldir  %less  %lf  %lk  %ll  %load  %load_ext  %loadpy  %logoff  %logon  %logstart  %logstate  %logstop  %ls  %lsmagic  %lx  %macro  %magic  %man  %matplotlib  %mkdir  %more  %mv  %notebook  %page  %pastebin  %pdb  %pdef  %pdoc  %pfile  %pinfo  %pinfo2  %pip  %popd  %pprint  %precision  %prun  %psearch  %psource  %pushd  %pwd  %pycat  %pylab  %qtconsole  %quickref  %recall  %rehashx  %reload_ext  %rep  %rerun  %reset  %reset_selective  %rm  %rmdir  %run  %save  %sc  %set_env  %store  %sx  %system  %tb  %time  %timeit  %unalias  %unload_ext  %who  %who_ls  %whos  %xdel  %xmode

# Available cell magics:
# %%!  %%HTML  %%SVG  %%bash  %%capture  %%debug  %%file  %%html  %%javascript  %%js  %%latex  %%markdown  %%perl  %%prun  %%pypy  %%python  %%python2  %%python3  %%ruby  %%script  %%sh  %%svg  %%sx  %%system  %%time  %%timeit  %%writefile

# Automagic is ON, % prefix IS NOT needed for line magics.

建议

3d28f70349717eea9f16a9cdd54da3b1.png

用起来!

参考文献

28ca44d661f4b1dfb83469e933ec462a.png

  1. How to optimize your Jupyter Notebook

  2. Increase Your Productivity with Jupyter Notebook

  3. 5 Tips and Tricks to use with Jupyter Notebook to be productive and to stay organiz

6f103241659770ab436fbc48382a91e7.png
 
 
 
 
 
 
 
 
往期精彩回顾




适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载黄海广老师《机器学习课程》视频课黄海广老师《机器学习课程》711页完整版课件

本站qq群955171419,加入微信群请扫码:

ed378d6d9f6628963d23530d731479d4.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值