刚刚安装好的Jupyter在默认的文件路径下,以后使用Jupyter生成的文件也都在该路径之下。但是我们一般更喜欢将其保存在自己喜欢的路径之下,下面看看如何修改
命令行中输入 jupyter notebook --generate-config
上面的命令会在C:\Users\sunch.jupyter生成配置文件jupyter_notebook_config.py
打开该文件查找(Ctrl+F)c.NotebookApp.notebook_dir会看到如下代码
## The directory to use for notebooks and kernels.
#c.NotebookApp.notebook_dir = ' '
在’ '中添加需要保存的路径,且删除最前面的#,重要的一点要在’ '前面加个u,示例如下:
## The directory to use for notebooks and kernels.
c.NotebookApp.notebook_dir = u'D:\\PythonNotebook'
再打开jupyter会直接打开刚刚的文件路径
安装一些有用的插件可以帮助我们更好的使用Jupyter,安装插件的选项在上面列举的 Nbextensions 模块中,这就是为什么下面列举一些比较重要的插件
先来看看有无目录的区别
有目录情况
可以看到有目录之后工具栏上方多了Navigate选项和一个目录按钮,页面左侧多了一个目录界面,点击Navigate可以查看当前目录,目录按钮可以控制页面左侧是否显示目录,点击目录中的一项可以直接跳到笔记的对应位置,黄色为当前正在编辑的cell,红色是当前正在运行的Python cell。也可以把目录拖拽出来放在页面顶层。非常方便吧,下面看看如何安装这个插件
安装非常简单,我们打开Jupyter后找到 Nbextensions 选项,然后可以看到一页插件,找到 Table of Contents (2) 并勾选,之后关闭一个笔记再重新打开就有目录了。如果不行尝试重启一下Jupyter
勾选 Table of Contents (2) 时我们可以看到页面下方有该插件的介绍,我们可以设置插件的一些默认功能,比如是否自动编号,目录名称、是否在笔记顶部生成一个目录等等,这里就不再介绍了。在这里修改的设置适用于以后所有的笔记,如果希望单独对一个笔记修改设置,可以在笔记中点开目录的设置进行一些基本的修改
我们写笔记的时候每个单元有时候内容很长,但又不是我们想看到的内容,我们希望隐藏其中的内容以及子单元,只显示当前单元的标题,也就是所谓的标题折叠。同样我们看一看不使用和使用该功能的区别
使用标题折叠功能
可以发现使用标题折叠功能后,在有标题的单元的标题前出现了一个三角号,单机该三角号可以隐藏该标题__后面__的所有子单元(与标题在同一单元内的内容不会被隐藏,所以使用该功能建议养成经常将标题写进一个独立的单元的习惯)
与安装Table of Contents (2)插件一样,需要在 Nbextensions 选项中找到该插件,然后在页面下方设置一些功能
该插件用来格式化代码,让代码更加美观。话不多说直接上图
安装插件之前的代码
安装插件后对该cell进行格式化之后的结果
可以看到cell中的代码被格式化了,变成网上经常看到的很美的代码了
首先需要安装模块autopep8(命令行输入pip install autopep8),之后重启Jupyter,在 Nbextensions 选项中找到该插件Autopep8并勾选。这时在新打开的笔记中工具栏会多个“锤子”按钮
选中要要美化的代码块,点击“锤子”按钮,代码块就被美化了,也可以在设置中设置快捷键完成快速格式化以及全部代码块的格式化
在一些专门的python的IDE比如spyder中会有一个窗口用来显示当前运行环境中的所有变量,jupyter中当然也有这个功能。要实现这个功能需要安装插件 Variable inspector,效果如下图所示
安装了插件后工具栏会多出一个类似瞄准器的按钮和一个可拖动窗口,点击这个按钮控制是否显示窗口。
同样在 Nbextensions 选项中找到该插件Variable inspector并勾选,也可以根据插件的说明设置一些参数,比如是否在打开一个新的笔记时就显示变量检查器
有了标题折叠当然也有代码折叠,代码折叠是一个很有用的功能,可以让我们尽快了解代码中包含的主要函数和及其能够实现的功能。看一下使用了代码折叠和未使用代码折叠的两种情况
未使用代码折叠
使用了代码折叠
可以看到使用代码折叠后,在class
和def
前面多出了一个三角号(不只是这两种情况,一些循环体比如for
和while
也可以隐藏,更多可折叠情况参考插件说明),可以其后的一块代码隐藏,方便我们在一篇较长的代码中找到几个主体部分,方便阅读。
同样在 Nbextensions 选项中找到该插件Code folding并勾选,也可以根据插件的说明设置一些参数
使用魔法函数可以让我们知道后面代码的运行时间,不过我们可以通过一个插件方便的显示所有代码块的运行时间
安装了Execute time
可以看到代码块下方多了一个小条显示了当前代码块的执行时间,双击该条可以隐藏该时间。也可以在选项Cell->Excution Timings中选择显示或清除当前代码块或者所有代码块的运行时间
同样在 Nbextensions 选项中找到该插件Execute time并勾选,也可以根据插件的说明设置一些参数,具体参见插件说明
点击工具栏上方的“键盘”按钮就可以查看所有快捷键了,下面列举一些常用的快捷键
Enter:【进入】编辑
ESC:【退出】编辑
↑↓:未编辑状态下【选择】上(下)一个cell
M:未编辑状态下将Python cell【转化】为Markdown cell
Y:未编辑状态下将Markdown cell【转化】为Python cell
DD:未编辑状态下【删除】cell
C/X/V:未编辑状态下【复制/剪切/粘贴】cell
Z:未编辑状态下【返回】上一步操作
A/B:未编辑状态下在当前cell上(下)方【插入】一个cell
S:未编辑状态下【保存】笔记
Ctrl + Enter:【执行】当前cell
Alt + Enter:【执行】当前cell并在当前cell下方插入一个cell
Shift + M:按住Shift选中多个cell,按下M【合并】选择的cell,若其中包含代码cell,合并后的cell为代码cell
Ctrl + Shift + -:在光标处【分离】当前cell为两个cell
ESC + F:【查找】与【替换】
ESC + O:【隐藏】输出,也可以通过点击一次输出将输出结果变成可滚动查看的模式,或者双击变成隐藏模式
L:未编辑状态下显示当前cell的【行号】
Shift + L:未编辑状态下显示所有cell的行号
Ctrl + /:将选中的代码【注释】掉
Tab:编辑状态下【提示补全】,这是Ipython的功能,如果不能补全,尝试在命令行输入pip install pyreadline
。另外安装Jupyter插件 Hinterland 可以在编辑时提示补全,不过可能会影响编辑习惯
Shift + Tab:编辑状态下显示函数【帮助】,相当于help()函数
Jupyter自带的魔法函数可以帮助我们实现很多强大的功能,比如我们前面安装的那些插件的功能。魔法函数分为两种,一种是针对下一行代码的,前面有一个%;另一种是针对一个cell的,前面有两个%。我们可以通过%lsmagic
命令查看所有魔法函数。我们简单介绍一些
%lsmagic
Available line magics:
%alias %alias_magic %autoawait %autocall %automagic %autosave %bookmark %cd %clear %cls %colors %conda %config %connect_info %copy %ddir %debug %dhist %dirs %doctest_mode %echo %ed %edit %env %gui %hist %history %killbgscripts %ldir %less %load %load_ext %loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %macro %magic %matplotlib %mkdir %more %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 %ren %rep %rerun %reset %reset_selective %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 %%cmd %%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.
魔法函数 | 作用 |
---|---|
%time | 显示当前行代码的运行时间 |
%timeit | 显示当前行代码的平均运行时间 |
%%time | 显示当前cell代码的运行时间 |
%%timeit | 显示当前cell代码的平均运行时间 |
%pprint | 格式化输出,起到Autopep8的作用 |
%matplotlib inline | 显示图片(有时第一次运行的时候无法显示) |
%config ZMQInteractiveShell.ast_node_interactivity=‘all’ | Jupyter通常只显示最后一行变量的输出,使用该函数可以显示全部输出 |
%%bash | 使用Linux下的Shell环境(只能在Linux上使用) |
%%cmd | 使用Windows下的Cmd环境(只能在Windows上使用) |
%run xxx.py | 执行xxx.py文件 |
%load xxx.py | 将xxx.py中的代码加载到当前cell |
%who | 查看所有变量 |
%whos | 查看所有变量及变量值 |
%reset | 清除所有变量 |
%hist | 查看当前笔记中所有运行过的代码 |
import time
import numpy as np
%time time.sleep(1)
Wall time: 1 s
%%time
for i in range(1000):
time.sleep(0.01)
Wall time: 10.8 s
%timeit np.random.normal(size=100)
4.41 µs ± 27.5 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
%%cmd
dir
Microsoft Windows [版本 10.0.17763.737]
© 2018 Microsoft Corporation。保留所有权利。
D:\PythonNotebook\python_learning\CH00 软件安装与使用>dir
驱动器 D 中的卷是 新加卷
卷的序列号是 D68A-2F89
D:\PythonNotebook\python_learning\CH00 软件安装与使用 的目录
2019/09/21 16:48
.D:\PythonNotebook\python_learning\CH00 软件安装与使用>