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命令行来启动。
Anaconda Navigator打不开的解决办法
有时候,在通过anaconda prompt窗口执行conda install ***的安装库的命令后发生无法打开anaconda navigator的情况。
如何修复?
在搜索网络中各种解决方法并加以尝试后,总结出以下方案:
- 以管理员权限打开anaconda prompt
- 输入conda update conda
- 输入conda update –all
- 尝试打开anaconda navigator
- 如果不行,输入 conda update anaconda-navigator
- 输入anaconda-navigator –reset
- 输入conda update anaconda-client
- 输入conda update -f anaconda-client
执行以上所有命令行,大概率可修复anaconda navigator
方式二:pip安装
pip是python的一款包管理工具,通过pip install pkg_name
可以完成很多python扩展包的安装。jupyter notebook 同样,执行pip install jupyter
即可完成安装。
Jupyter Notebook入门
- 启动在终端中输入
jupyter notebook
是最常用的启动方式,默认在本地的8888端口启动。如果本地已经有一个jupyter正在运行,再启动一个就会运行在8889端口。运行完该命令,会在系统默认的浏览器打开一个网页,网页的地址是:http://localhost:8888/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
这里只列出了常用的菜单操作,没有列出的并不表示不常用,而是可以用快捷键或者菜单栏下方的快捷工具代替。如果需要查看每一个菜单选项的含义和作用,推荐文章:https://blog.51cto.com/853056088/2162189,写的非常详细。
3. 命令模式和编辑模式
每一个cell有两种模式:命令模式和编辑模式。如下图所示:最左侧是蓝色的条是命令模式,是绿色的条表示编辑模式(此时cell中有光标,可以进行代码编写)。在命令模式下,按下enter或者鼠标单击代码框可以进入编辑模式。在编辑模式下,按下esc或者鼠标单击代码框左侧区域即可进入命令模式。
代码运行:
- 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. 魔法函数
以上是一些常用的魔法函数,其他的一些魔法函数依然可以查阅上面的链接,
https://blog.51cto.com/853056088/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等,读者可以自行探索查看,并配置使用。
其他说明
- 制作幻灯片并放映:参考该链接的第二部分:https://blog.csdn.net/qq_27825451/article/details/85050496
- 数学公式编辑:这个其实是MarkDown功能的延伸,需要将cell的代码类型改为MarkDown,然后在一对美元符号之间写入LaTex公式,(例如
$E=mc^2$
),运行cell之后就可以正常显示公式了。 - 关于jupyter lab和jupyter hubjupyter 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介绍、安装及使用教程
一、什么是Jupyter Notebook?
1. 简介
Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。——Jupyter Notebook官方介绍
简而言之,Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释。
2. 组成部分
① 网页应用
网页应用即基于网页形式的、结合了编写说明文档、数学公式、交互计算和其他富媒体形式的工具。简言之,网页应用是可以实现各种功能的工具。
② 文档
即Jupyter Notebook中所有交互计算、编写说明文档、数学公式、图片以及其他富媒体形式的输入和输出,都是以文档的形式体现的。
这些文档是保存为后缀名为.ipynb
的JSON
格式文件,不仅便于版本控制,也方便与他人共享。
此外,文档还可以导出为:HTML、LaTeX、PDF等格式。
3. Jupyter Notebook的主要特点
- 编程时具有语法高亮、缩进、tab补全的功能。
- 可直接通过浏览器运行代码,同时在代码块下方展示运行结果。
- 以富媒体格式展示计算结果。富媒体格式包括:HTML,LaTeX,PNG,SVG等。
- 对代码编写说明文档或语句时,支持Markdown语法。
- 支持使用LaTeX编写数学性说明。
二、安装Jupyter Notebook
0. 先试用,再决定
如果看了以上对Jupyter Notebook的介绍你还是拿不定主意究竟是否适合你,那么不要担心,你可以先免安装试用体验一下,戳这里,然后再做决定。
值得注意的是,官方提供的同时试用是有限的,如果你点击链接之后进入的页面如下图所示,那么不要着急,过会儿再试试看吧。
如果你足够幸运,那么你将看到如下界面,就可以开始体验啦。
主界面
编辑页面
1. 安装
① 安装前提
安装Jupyter Notebook的前提是需要安装了Python(3.3版本及以上,或2.7版本)。
② 使用Anaconda安装
如果你是小白,那么建议你通过安装Anaconda来解决Jupyter Notebook的安装问题,因为Anaconda已经自动为你安装了Jupter Notebook及其他工具,还有python中超过180个科学包及其依赖项。
你可以通过进入Anaconda的官方下载页面自行选择下载;如果你对阅读英文文档感到头痛,或者对安装步骤一无所知,甚至也想快速了解一下什么是Anaconda,那么可以前往我的另一篇文章Anaconda介绍、安装及使用教程。你想要的,都在里面!
常规来说,安装了Anaconda发行版时已经自动为你安装了Jupyter Notebook的,但如果没有自动安装,那么就在终端(Linux或macOS的“终端”,Windows的“Anaconda Prompt”,以下均简称“终端”)中输入以下命令安装:
conda install jupyter notebook
③ 使用pip命令安装
如果你是有经验的Python玩家,想要尝试用pip命令来安装Jupyter Notebook,那么请看以下步骤吧!接下来的命令都输入在终端当中的噢!
- 把pip升级到最新版本
- Python 3.x
pip3 install --upgrade pip
- Python 2.x
pip install --upgrade pip
- 注意:老版本的pip在安装Jupyter Notebook过程中或面临依赖项无法同步安装的问题。因此强烈建议先把pip升级到最新版本。
- 安装Jupyter Notebook
- Python 3.x
pip3 install jupyter
- Python 2.x
pip install jupyter
三、运行Jupyter Notebook
0. 帮助
如果你有任何jupyter notebook命令的疑问,可以考虑查看官方帮助文档,命令如下:
jupyter notebook --help
或
jupyter notebook -h
1. 启动
① 默认端口启动
在终端中输入以下命令:
jupyter notebook
执行命令之后,在终端中将会显示一系列notebook的服务器信息,同时浏览器将会自动启动Jupyter Notebook。
启动过程中终端显示内容如下:
$ jupyter notebook
[I 08:58:24.417 NotebookApp] Serving notebooks from local directory: /Users/catherine
[I 08:58:24.417 NotebookApp] 0 active kernels
[I 08:58:24.417 NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/
[I 08:58:24.417 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
- 注意:之后在Jupyter Notebook的所有操作,都请保持终端不要关闭,因为一旦关闭终端,就会断开与本地服务器的链接,你将无法在Jupyter Notebook中进行其他操作啦。
浏览器地址栏中默认地将会显示:http://localhost:8888
。其中,“localhost”指的是本机,“8888”则是端口号。
如果你同时启动了多个Jupyter Notebook,由于默认端口“8888”被占用,因此地址栏中的数字将从“8888”起,每多启动一个Jupyter Notebook数字就加1,如“8889”、“8890”……
② 指定端口启动
如果你想自定义端口号来启动Jupyter Notebook,可以在终端中输入以下命令:
jupyter notebook --port <port_number>
其中,“<port_number>”是自定义端口号,直接以数字的形式写在命令当中,数字两边不加尖括号“<>”。如:jupyter notebook --port 9999
,即在端口号为“9999”的服务器启动Jupyter Notebook。
③ 启动服务器但不打开浏览器
如果你只是想启动Jupyter Notebook的服务器但不打算立刻进入到主页面,那么就无需立刻启动浏览器。在终端中输入:
jupyter notebook --no-browser
此时,将会在终端显示启动的服务器信息,并在服务器启动之后,显示出打开浏览器页面的链接。当你需要启动浏览器页面时,只需要复制链接,并粘贴在浏览器的地址栏中,轻按回车变转到了你的Jupyter Notebook页面。
例图中由于在完成上面内容时我同时启动了多个Jupyter Notebook,因此显示我的“8888”端口号被占用,最终分配给我的是“8889”。
2. 主页面
① 主页面内容
当执行完启动命令之后,浏览器将会进入到Notebook的主页面,如下图所示。
如果你的主页面里边的文件夹跟我的不同,或者你在疑惑为什么首次启动里边就已经有这么多文件夹,不要担心,这里边的文件夹全都是你的家目录里的目录文件。你可以在终端中执行以下2步来查看:
① cd
或 cd -
或 cd ~
或cd /Users/<user_name>
- 这个命令将会进入你的家目录。
- “<user_name>” 是用户名。用户名两边不加尖括号“<>”。
② ls
- 这个命令将会展示你家目录下的文件。
② 设置Jupyter Notebook文件存放位置
如果你不想把今后在Jupyter Notebook中编写的所有文档都直接保存在家目录下,那你需要修改Jupyter Notebook的文件存放路径。
⑴ 创建文件夹/目录
- Windows用户在想要存放Jupyter Notebook文件的磁盘中新建文件夹并为该文件夹命名;双击进入该文件夹,然后复制地址栏中的路径。
- Linux/macOS用户在想要存放Jupyter Notebook文件的位置创建目录并为目录命名,命令为:
mkdir <directory_name>
;进入目录,命令为:cd <directory_name>
;查看目录的路径,命令为:pwd
;复制该路径。 - 注意:“<directory_name>”是自定义的目录名。目录名两边不加尖括号“<>”。
⑵ 配置文件路径
- 一个便捷获取配置文件所在路径的命令:
jupyter notebook --generate-config
- 注意: 这条命令虽然可以用于查看配置文件所在的路径,但主要用途是是否将这个路径下的配置文件替换为默认配置文件。
如果你是第一次查询,那么或许不会出现下图的提示;若文件已经存在或被修改,使用这个命令之后会出现询问“Overwrite /Users/raxxie/.jupyter/jupyter_notebook_config.py with default config? [y/N]”,即“用默认配置文件覆盖此路径下的文件吗?”,如果按“y”,则完成覆盖,那么之前所做的修改都将失效;如果只是为了查询路径,那么一定要输入“N”。
常规的情况下,Windows和Linux/macOS的配置文件所在路径和配置文件名如下所述:
- Windows系统的配置文件路径:
C:\Users\<user_name>\.jupyter\
- Linux/macOS系统的配置文件路径:
/Users/<user_name>/.jupyter/
或~/.jupyter/
- 配置文件名:
jupyter_notebook_config.py
- 注意:
① “<user_name>”为你的用户名。用户名两边不加尖括号“<>”。
② Windows和Linux/macOS系统的配置文件存放路径其实是相同的,只是系统不同,表现形式有所不同而已。
③ Windows和Linux/macOS系统的配置文件也是相同的。文件名以“.py”结尾,是Python的可执行文件。
④ 如果你不是通过一步到位的方式前往配置文件所在位置,而是一层一层进入文件夹/目录的,那么当你进入家目录后,用ls
命令会发现找不到“.jupyter”文件夹/目录。这是因为凡是以“.”开头的目录都是隐藏文件,你可以通过ls -a
命令查看当前位置下所有的隐藏文件。
⑶ 修改配置文件
- Windows系统的用户可以使用文档编辑工具或IDE打开“jupyter_notebook_config.py”文件并进行编辑。常用的文档编辑工具和IDE有记事本、Notepad++、vim、Sublime Text、PyCharm等。其中,vim是没有图形界面的,是一款学习曲线较为陡峭的编辑器,其他工具在此不做使用说明,因为上手相对简单。通过vim修改配置文件的方法请继续往下阅读。
- Linux/macOS系统的用户建议直接通过终端调用vim来对配置文件进行修改。具体操作步骤如下:
⒜ 打开配置文件
打开终端,输入命令:
vim ~/.jupyter/jupyter_notebook_config.py
执行上述命令后便进入到配置文件当中了。
⒝ 查找关键词
进入配置文件后查找关键词“c.NotebookApp.notebook_dir”。查找方法如下:
进入配置文件后不要按其他键,用英文半角直接输入/c.NotebookApp.notebook_dir
,这时搜索的关键词已在文档中高亮显示了,按回车,光标从底部切换到文档正文中被查找关键词的首字母。
⒞ 编辑配置文件
按小写i进入编辑模式,底部出现“–INSERT–”说明成功进入编辑模式。使用方向键把光标定位在第二个单引号上(光标定位在哪个字符,就在这个字符前开始输入),把“⑴ 创建文件夹/目录”步骤中复制的路径粘贴在此处。
⒟ 取消注释
把该行行首的井号(#)删除。因为配置文件是Python的可执行文件,在Python中,井号(#)表示注释,即在编译过程中不会执行该行命令,所以为了使修改生效,需要删除井号(#)。