Jupyter 实用技巧小结
1.Keyboard Shortcuts
esc+f 查找和替换代码
esc+o 跳出代码块输出
shift+j 或shift+down 向下选中cell
shift+k 或shift+up 向上选中cell
shift+m进行cell合并
更多快捷键可通过ctrl+shift+p查看
2.pretty display of varibles
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
无需print,可输出多行命令行变量,不止最后一个
如果你想要所有的Jupyter实例(Notebook和Console)都设置该选项,只需创建 ~/.ipython/profile_default/ipython_config.py 文件并写入一下内容:
c = get_config()
# Run all nodes interactively
c.InteractiveShell.ast_node_interactivity = "all"
3.Plotting in notebooks
在 notebook 中生成绘图有许多选项:
matplotlib, 使用%matplotlib inline进行激活。
%matplotlib notebook提供了一些交互性,不过可能会有点慢,因为渲染由服务器端完成。
mpld3为matplotlib代码提供了另一个渲染器(使用d3)。非常漂亮,不过尚不完备还有待发展。
bokeh是构建交互性绘图的一个更好的选择。
plot.ly也可以生成漂亮的绘图,不过是付费服务。
4.Jupyter Magic Commands
上面的 %matplotlib inline 就是一个所谓的 Jupyter Magic (Jupyter魔法)命令。%lsmagic查看所有命令
5.Jupyter Magic - %load:Insert the code from an external script
这将会使用外部脚本来代替cell的内容。你可以使用本地机器上的文件也可以使用一个URL.
6.Jupyter Magic - Timing
对于计时有两个十分有用的魔法命令:%%time 和 %timeit. 如果你有些代码运行地十分缓慢,而你想确定是否问题出在这里,这两个命令将会非常方便。
%%time 将会给出cell的代码运行一次所花费的时间。
7.Jupyter Magic - %prun:Show how much time your program spent in each function
使用%prun statement_name将会产生一个有序表格来展示在该语句中所调用的每个内部函数调用的次数,每次调用的时间与该函数累计运行的时间。
8.Jupyter Magic - Debugging with %pdb
Jupyter有一个自己的python调试器接口(pdb),这使得我们能够进入函数内部看看到底发生了什么。或头部输入以下代码:
import pdb
pdb.set_trace()
9.Executing Shell Commands
在 notebook 中执行 shell 命令非常容易,你可以像下面这样列出当前目录下的文件:
!ls
JupyterNotebookTips.ipynb LinearRegression.ipynb
!pip list | grep pandas
10.Multicursor support
Jupyter 支持多光标操作,与 Sublime Text 类似。按住 Alt 进行点击和拖拽鼠标即可。
11.Jupyter-contrib extensions
Jupyter-contrib extensions 是一系列能够给 Jupyter 带来许多功能的扩展,比如 jupyter spell-checker 和 code-formatter.
译者:使用conda安装是最方便的,更多安装与使用信息可以看Jupyter-contrib extensions. 启用插件可以使用jupyter_nbextensions_configurator , 通过打开 http://localhost:8888/nbextensions/ 进行设置,里面有很多实用的插件,具体自行发现。
conda install -c conda-forge jupyter_contrib_nbextensions
12.Create a presentation from a Jupyter notebook
Damian Avila的 RISE 允许你从已有的一个 notebook 创建一个 powerpoint 风格的报告。
你可以通过 conda 安装 RISE:
conda install -c damianavila82 rise
或通过 pip:
pip install RISE
然后执行下面的代码安装并启用扩展:
jupyter-nbextension install rise --py --sys-prefix
jupyter-nbextension enable rise --py --sys-prefix
13.The Jupyter output system
notebook 以 HTML 的方式进行展示,cell 的输出也可以是 HTML,所以事实上你可以返回任何东西:视频/音频/图像。
下面的例子我扫描了 images 目录下的 png 文件,并输出它们的缩略图.(译者:因为当前该目录下只有两个 png 文件,所以仅输出两个)
import os
from IPython.display import display, Image
names = [f for f in os.listdir('../images/') if f.endswith('.png')]
for name in names[:5]:
display(Image('../images/' + name, width=100))
14.‘Big data’ analysis
对于大规模数据样本的查询/处理也有一些解决方案:
ipyparallel(以前叫ipython cluster)是使用 Python 进行简单 map-reduce 操作的一个很好的选择。
pyspark
spark-sql 魔法 %%sql
pysparkspark-sql 魔法 %%sql
15.更改jupyter 工作路径
创建好默认工作目录并复制路径例如:
C:\Users\XXXX\Desktop\working\Work\MS\Codingwork
然后在命令窗口输入:
jupyter notebook --generate-config
在相应的用户目录下找到该文件(需要开启显示隐藏文件),打开,找到下列代码:
## The directory to use for notebooks and kernels.
#c.NotebookApp.notebook_dir = ''
更改为(记得去除第二行的#):
## The directory to use for notebooks and kernels.
c.NotebookApp.notebook_dir = r'C:\Users\XXXX\Desktop\working\Work\MS\Codingwork'
16.更改jupyter 默认启动游览器
首先复制需设为默认游览器的应用程序路径,例如:
C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
然后打开在15中已经创建了 jupyter_notebook_config.py 文件,在任意处添加以下代码:
import webbrowser
webbrowser.register("chrome", None,webbrowser.GenericBrowser(r"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"))
c.NotebookApp.browser = 'chrome'
17 代码美化
打开Anaconda Prompt,执行命令,安装该插件;
pip install jupyter_contrib_nbextensions
安装完毕之后执行
jupyter contrib nbextensions install
然后执行命令
pip install yapf
打开jupyter notebook,进入Nbextensions,勾选上Code prettify 。
18 代码自动补全
安装好 nbextensions 和 nebxtensions_configurator
pip install jupyter_contrib_nbextensions
pip install jupyter_nbextensions_configurator
开启权限:
jupyter nbextensions_configurator enable --user
打开jupyter notebook,在files 、running和clusters旁边找到nbextensions,勾选Hinterland,于是就启用了代码自动补全。
extensions中有很多有意思的插件,可以点击相应的插件名,下方会给出详细的样例及效果图。