Jupyter notebook使用技巧大全

点击上方“蓝字”,轻松关注
jupyter notebook 简介
jupyter notebook是一款开源的web应用,它允许使用者创建和分享包含代码,公式,可视化图表和纯文本的文档,并支持多种编程语言的交互式计算,对于python用户来讲更是一款十分方便的代码编写工具。只需要通过web浏览器就可以很方便地进行数据清洗和转换,数值模拟,统计建模,数据可视化,机器学习等。本文主要介绍jupyter notebook结合python的使用。
jupyter notebook安装
jupyter notebook的前身是ipython notebook,对python2,python3都有很好的支持。相比于pycharm,它安装更方便,代码块可以分开运行,支持markdown和latex,是对于数据分析人员特别友好的一个很“轻”的工具。通常可以在本地启动jupyter notebook服务,通过web浏览器使用它。实际工作中,有些公司会统一部署在线的jupyter notebook服务,同样通过相应的链接就可以访问,支持直接连接hive表,使用pyspark等。另外,在一些数据平台上,例如kaggle,科赛等,很多代码也是通过notebook的形式进行分享,代码运行结果,图像等能够保留,因此具有较强的易读性。
对于本地的安装,有以下方式。
方法一:anaconda安装
这是官方强烈推荐 的一种安装方式。anaconda本身包含了python,jupyter notebook以及其他常用的数据科学包,如pandas,numpy等。安装完anaconda之后,通过anaconda navigator就可以快速启动。也可以在终端中执行jupyter notebook命令来启动,windows下安装好anaconda之后,可以找到相应的导航器和prompt命令行来启动。
方式二:pip安装
pip是python的一款包管理工具,通过pip install pkg_name可以完成很多python扩展包的安装。jupyter notebook 同样,执行pip install jupyter即可完成安装。
jupyter notebook入门
启动
在终端中输入jupyter notebook是最常用的启动方式,默认在本地的8888端口启动。如果本地已经有一个jupyter正在运行,再启动一个就会运行在8889端口。运行完该命令,会在系统默认的浏览器打开一个网页,网页的地址是:
tree。
需要注意的是我们执行该启动命令的目录就是启动之后的根目录。如果你是要打开已经存在的.ipynb文件,最好切换到该文件所在目录再启动,或者启动之后将文件移动(或复制)到启动目录下。
另外,如果想换一个浏览器打开jupyter notebook(我习惯用chrome而不是默认的safari),一种方式是可以复制浏览器的链接地址在目标浏览器中粘贴访问,此时可能出现类似于如下的界面。此时需要回到终端中,复制一下token填入token框,点击login即可正常访问。
总体使用
如下图所示,该页面是启动之后默认打开的页面。我们可以看到当前目录下已有的文件,可以查看已有的jupyter 文件(灰色表示未在运行,绿色表示正在运行),可以点击查看子目录下的内容。
我们点击右侧的new,选择python3会在新的页面中建立一个未命名的notebook文件,选择text file会新的页面中建立一个未命名的txt文件,选择folder会在当前页面中建立一个未命名文件夹,选择terminal会在新的页面中建立terminal。
可以在左侧进行勾选,对文件夹进行重命名,移动或删除,对文件进行复制,重命名,移动,下载,查看,编辑和删除。
running选项卡下可以看到当前正在运行的terminal和notebook,使我们可以对目前的资源使用情况进行一个直观了解。
退出
如果要停止某个正在执行的notebook文件,可以在file选项卡下勾选该文件,点击shutdown(也可以用其他方式,见后文)。如果要关闭整个jupyter notebook,可以在终端中按下键盘上的ctrl c即可。
notebook使用说明
接下来我们重点说明一下新建“python3”之后的操作,这也是最常用的编写python文件的操作。
1.总体布局
上面图中大致说明了notebook中每一部分的作用,对平常使用python运行程序来讲,快捷命令已经足够。快捷命令工具条从左到后的图标依次表示:保存文件,添加新cell,剪切选中的cell,复制选中的cell,粘贴选中的cell,将选中cell上移,将选中cell下移,执行选中的cell,终止kernel,重启kernel,重启kernel并重新运行所有cell。code点击之后有四个选项,分别是:code(写python代码),markdown(写markdown代码,通常用于注释),raw nbconvert(一个转换工具),heading(快捷添加markdown标题)。最后一个小键盘可以查看和搜索一些快捷键的操作。
2. 常用菜单操作:
修改文件名:可以点击文件名称,在弹出的框中直接修改或者file—>rename
新建notebook文件:file—>new notebook—>python3
下载文件:file—>download as —> 选择目标格式即可下载
合并cell:edit—>merge cell above或merge cell below
重启kernel并清除所有输出:kernel—>restart & clear output
重启kernel并运行所有cell:kernel—>restart & run all
停止当前notebook运行:kernel—>shutdown
这里只列出了常用的菜单操作,没有列出的并不表示不常用,而是可以用快捷键或者菜单栏下方的快捷工具代替。如果需要查看每一个菜单选项的含义和作用,。
3. 命令模式和编辑模式
每一个cell有两种模式:命令模式和编辑模式。如下图所示:最左侧是蓝色的条是命令模式,是绿色的条表示编辑模式(此时cell中有光标,可以进行代码编写)。在命令模式下,按下enter或者鼠标单击代码框可以进入编辑模式。在编辑模式下,按下esc或者鼠标单击代码框左侧区域即可进入命令模式。
4. 常用快捷(键)操作:
代码运行:
ctrl + enter:运行当前cell的代码,运行完后依然保持在当前cell
shift + enter:运行当前cell的代码,运行完后跳转到下一个cell,如果是最后一个cell则会新增一个
工具条上的run
创建新的cell:
命令模式下,按下字母a(above),会在当前cell上方增加一个cell
命令模式下,按下字母b(blove),会在当前cell下方增加一个cell
工具条上的➕按钮
删除当前侧cell
命令模式下,按下字母x,即可删除当前cell
命令模式下,连续两次按下字母d,即可删除当前cell
工具条上的“剪刀”按钮
合并cell
命令模式下,选中多个cell,shift + m可以进行合并
edit—>merge cell above/merge cell down
拆分cell
编辑模式下,以光标所在之处为分界点,ctrl shift -(减号),可以进cell的拆分
edit—>split cell
保存代码
命令模式下,按下字母s,就能创建一个checkpoint
工具条上的保存按钮
file—>save and checkpoint
查找替换
编辑模式下,esc + f
edit—>find and replace
折叠输出:有时输出过长的情况
编辑模式下,esc+o
在cell左侧位置上双击即可折叠
cell—>current output—>toggle
显示代码行号
命令模式下,按下字母l(l的小写,键盘k右侧的l)键,就能显示当前cell的行号
shift + l,显示所有cell的行号
view—>toggle line numbers
切换代码类型
命令模式下,按下m切换到markdown模式,再按下y切换到code模式
工具条上手动切换
cell—>cell type—>选择相应的代码类型
注释代码
选中代码,command+/ (windows下是control)
注:其他的快捷键可以点击工具栏最后的小键盘查看。
tab键的使用
只输入变量或者函数的前几个字母,按下tab可以自动补全
已经输入函数,连续按下shift+tab可以查询函数的具体用法,(一直可以按4次)
执行shell命令
英文状态下的感叹号+普通的shell命令,例如:!pwd,!ls等,有些时候或许很有用。
5. 魔法函数
以上是一些常用的魔法函数,其他的一些魔法函数依然可以查阅上面的链接,
2162189吗,读者可以查阅其具体的用法。jupyter notebook扩展
执行以下代码可以安装jupyter notebook扩展
pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install
安装完之后,重新启动一下jupyter 服务,就可以看到nbextensions选项卡。我们只需要勾选相应的插件,在每一个notebook的工具条中就会出现相应的扩展。选中每个扩展的时候,在其下方都会出现关于该扩展的说明,演示,配置等情况,通过仔细阅读我们就能得知该扩展的用法。
比较好用的几个扩展及其作用如下:
1.table of contents
这个扩展一般用于整个文件的目录很多的时候。首先在nbextensions选项卡中勾选该插件,然后在工具条中就可以看到该扩展按钮。如果我们在notebook中使用了markdown设置了我们的标题,点击该扩展,就会在左侧生成目录,点击左侧的齿轮,可以在最顶部添加一个cell专门用来显示目录。点击左侧和顶部的链接都可以快速跳转到相应的位置。还可以进行目录的折叠。注意到此时菜单栏上也多了一个“navigate”标签,同样显示了目录的情况。
2.autopep8
这是一个将代码按照pep8进行格式化的插件,前提是需要通过pip install autopep8安装autopep8,安装完之后需要重启jupyter notebook服务才能生效。同样在nbextention选项卡中勾选autopep8,在工具栏中会多一个“锤子”一样的按钮,可以帮助我们排版代码,使其符合pep8标准。
3.variable inspector
该插件可以帮助我们查看当前notebook中所有的变量的名称,类型,大小和值。省去了df.shape,type()等语句的执行,也代替了前文提到的魔法函数“%whos”的执行,读者可以自行尝试一下。
4.code folding
顾名思义,该插件可以对代码进行一定的折叠,例如遇到class,def等关键字,而且主体代码又很长时,折叠代码会方便阅读,这一点也让jupyter notebook更像一个ide。
5.execute time
该插件可以显示每一个cell中代码的执行时间。
除此之外还有一些其他常见的插件扩展,例如notify,collapsible headings等,读者可以自行探索查看,并配置使用。
其他说明
制作幻灯片并放映:参考该链接的第二部分:
数学公式编辑:这个其实是markdown功能的延伸,需要将cell的代码类型改为markdown,然后在一对美元符号之间写入latex公式,(例如$e=mc^2$),运行cell之后就可以正常显示公式了。
关于jupyter lab和jupyter hub
jupyter lab是基于jupyter notebook的新版本,是包括了notebook的下一代的有模块化的界面,可以在同一个窗口同时打开好几个notebook或文件(html, txt, markdown等等),都以标签的形式展示,于是就更像是一个ide。除了界面上存在差异,使用方式上和notebook没有大的差别。
jupyter hub是一个支持多用户的 jupyter notebook 服务器,用于创建、管理、代理多个 jupyter notebook 实例。具有扩展性和可定制性。常见的场景是公司的运维人员对很多人使用的notebook进行管理和资源分配。这里不太方便演示。
关于jupyter notebook与pycharm的差别
个人认为notebook是更“轻”量级的,适合小白使用。各个cell之间具有相对独立,且变量共享的特点,某些时候特别有用。(例如在爬虫时,请求一次就获得了html源码,后面进行页面解析时就可以以此为基础进行调试,无需再次请求,在处理对请求频次有限制的网站时还是很有用的)。除此外,notebook能够保存中间结果,方便演示,适合数据分析人员或者数据科学家使用。
pycharm更适合大型工程项目的管理,每一个文件是一次执行的。如果一个项目工程中有很多个文件,这时最好使用pycharm。此外pycharm在代码编辑时,随时会有提示,而且支持代码跳转,便于对源码的查看学习。当然工具毕竟只是工具,适合自己的就是最好的,读者可以根据自己的需求和使用习惯进行选择。
总结
本文我们主要学习了jupyter notebook的使用,核心内容在于一些快捷操作和扩展插件。希望对读到这里的你有一定的帮助。
------------------- end -------------------
往期精彩文章推荐:
欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持
想加入python学习群请在后台回复【入群】
万水千山总是情,点个【在看】行不行

Python进阶学习交流