社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

【Python】Python数据科学利器-Jupyter Notebook

机器学习初学者 • 3 年前 • 322 次点击  

公众号:尤而小屋
作者:Peter
编辑:Peter

大家好,我是Peter~

分享一篇自己曾经写过的Jupyter Notebook入门教程,主题换肤的内容请参考:

Jupyter Notebook奇技淫巧:换皮肤

工欲善其事,必先利其器

1、官网学习地址:

https://jupyter.org/

2、使用说明:

https://jupyter-notebook.readthedocs.io/en/stable/notebook.html

3、知乎很好的教程:

https://zhuanlan.zhihu.com/p/33105153

一、目录

二、谁在用Jupyter Notebook

也许还有朋友不知道Jupyter Notebook,到底都是谁在用它?

这是从官网上看到的使用者:谷歌、微软、NASA、IBM等国际知名公司都在其中。所以,你确定还不用吗?

三、用Jupyter Notebook写了什么

既然Jupyter Notebook这么受欢迎,那么Peter都用它写了什么?(ipynb文件都在Jupyter notebook完成)

1、Pandas系列的文章

2、Plotly系列文章

3、可视化库Pyecharts的使用

总结:Peter所有的文章都是在 Jupyter  Notebook 中完成的

四、什么是Jupyter Notebook

4.1简介

Jupyter Notebook是基于网页的用于交互计算的一款应用程序。它可被应用于整个计算过程:从开发文档编写、运行代码和到展示结果。

简而言之,Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码运行代码,代码的运行结果也会直接在代码块下显示的程序。

如在编程过程中需要编写说明文档,可在同一个页面中使用Markdown语法直接编写,便于作及时的说明和解释。

4.2组成

Jupyter notebook主要是由两个部分组成:网页和文档

上面已经介绍了Jupyter  Notebook中基于网页的应用程序,在Jupyter 的整个网页应用中结合了多个元素:说明文档、计算公式、文档编写、可视化动态图、甚至是可以嵌入PPT等。总之,这款网页应用的程序能够实现各种功能

Jupyter Notebook中的所有程序都能够以各种形式的输入和输出:公式、文档、富媒体形式等。

Jupyter的文档是保存为后缀名为.ipynbJSON格式文件,不仅便于版本控制,也方便与他人共享。

此外,文档还可以导出为:HTML、LaTeX、PDF、Markdown等格式的文件,十分方便和互联网化!

4.3特点

  • 编程便捷:在jupyter notebook中编程,具有语法高亮、缩进、tab补全等功能;同时能够在浏览器中直接运行代码
  • 支持Markdown:在在jupyter notebook中支持Markdown语法的,能够直接编写Markdown文档
  • 具有记忆功能:在jupyter notebook中产生的信息(同一次运行)具有记忆功能
  • 文档输出多样化:除了支持Markdown,还支持PDF、PPT、Latex公式、HTML、py文件等多种格式
  • 动态可视化:jupyter notebook中生成的图形可以是动态可视化的

五、安装

建议直接通过anaconda来安装Jupyter notebook,这样后续省去很多麻烦。

anacoda是全球最大的数据科学平台,一个基于Python的环境管理工具,相比其他库管理工具,它更适合数据工作者。

安装了anaconda之后,不仅是Jupyter notebook,很多python的第三方库,比如:pandas、numpy等都会自动安装好,实在是方便。

anaconda安装可自行搜索教程,傻瓜式安装

推荐几个安装教程:

1、Windows系统:https://zhuanlan.zhihu.com/p/75717350

2、MacOS系统:https://blog.csdn.net/lq_547762983/article/details/81003528

3、Linux系统(Ubuntu):https://zhuanlan.zhihu.com/p/84544848

安装包下载地址:https://www.anaconda.com/products/individual#Downloads

六、启动

(1)在安装好了Jupyter notebook之后,我们可以在任意位置启动它,直接输入jupyter notebook即可启动。

执行命令之后,在终端中将会显示一系列notebook的服务器信息,同时浏览器将会自动启动Jupyter Notebook:

(base) peter:pandas系列教程 peter$ pwd     -- 查看当前的目录
/Users/peter/Desktop/WeChat/文章/pandas系列教程  

(base) peter:pandas系列教程 peter$ jupyter notebook   -- 输入 jupyter notebook 表示启动

!!!注意:启动Jupyter之后我们的全部操作都不要关闭终端,否则的话notebook就会断开和本地服务器的连接。

(2)启动之后就来到了初始页面,包含你当前目录的全部文件(文件夹和文档):

我们看到notebook默认的地址是localhost:8888,也就是默认本机的8888端口。当我们开启了多个notebook,会自动变成8889,8890等端口。

当然,我们也可以自定义端口:

jupyter notebook --port 9988   # 使用9988端口

(3)启动之后我们可以新建一个ipynb的文件:

七、使用

在启动Jupyter Notebook,并且创建了新的文件之后,我们便可以开始在里面进行编码和文档写作。下面讲讲如何使用Jupyter Notebook。

首先我们需要明白一点:在Jupyter Notebook中有两种模式

  • 命令模式:键盘输入运行程序命令,此时单元格是蓝色
  • 编辑模式:允许你向单元格中输入代码或者文本内容,此时单元格是绿色

7.1主页面

主页面分为4个部分:

  • notebook名称,可重命名
  • 菜单栏
  • 工具栏
  • 代码单元格

7.2帮助文档

如果你是个新手,可以在notebook中直接查看帮助文档:

!jupyter notebook -h    # 感叹号!不能少

7.3重命名

默认的名字是“未命名”,给文件重命名:图解Pandas的apply函数

7.4文件

【文件】菜单中主要是对各种文件的输入和输出操作,特别是将ipynb文件下载成各种形式进行输出,十分方便:

7.5运行代码

当我们在代码的单元格中输入了代码,如何运行?

1、单击【运行】按钮

2、快捷键

将光标放在我们需要运行的代码框中,然后 Shift+Enter 即可运行~

3、运行全部代码

如果我们想直接从头运行整个notebook中的全部代码,如下操作:【服务】到【重启&运行所有】

7.6内省

在一个对象的前后使用问号?可以显示出关于该对象的概要信息,这个对象可以是自建的,也可以是Python中自带的:

print函数和自定义函数的自省概要信息:

使用双问号?还有个用途是显示函数的源代码:

7.7%run

%run命令可以用来运行任意的python文件:

  • Python文件的后缀为“.py”
  • “%run”后跟的是Python文件的绝对路径
%run Python文件的绝对路径

假设我们在当前目录下有个python文件:

  • 定义了3个变量
  • 给定了一个返回值result

我们在notebook中运行py文件:查看3个变量和返回值的情况

八、扩展功能

8.1安装

Jupyter notebook本身功能其实不是很多,所以通常会给它安装一个扩展,安装之后就可以起飞了。

安装和启动命令如下:

# 安装Jupyter的配置器
pip install jupyter_nbextensions_configurator

# 启动配置器
jupyter nbextensions_configurator enable --user

8.2显示代码行数

当一个单元格中的代码很多行,我们想显示行数:

8.3编码Markdown文档

当Peter需要在notebook中做笔记的时候,都是使用的Markdown。在Jupyter notebook中是可以直接Markdown语法来编写内容的,两种方式可以实现。

关于什么是Markdown以及Markdown的语法,直接在公众号中回复Markdown就可以获取免费的PPT来进行学习。

方法1:下拉选项中选择【标记】

方法2:快捷键的使用:【左侧蓝+M键】,Peter常用

8.4生成目录

在使用Markdown的时候是有不同层级的目录,可以显示在notebook中。首先在扩展中需要开启这个功能:

点击启用目录生成:目录默认是在左边,也是按照层级来实现的

我们把光标放在目录上,呈现带+的符号,可以拖到右边:

除了在左侧生成目录,还可以在整个ipynb文件的最上面生成目录:

不管是左侧还是最上面的目录,当我们点击其中某个标题的时候,都会自动跳转到相应的位置,查看、定位文档或者代码超级方便。

8.5标题高亮

安装了扩展之后,我们还可以对标题进行高亮显示:

  • 有3种颜色可供选择
  • 设置了高亮之后标题中便会高亮

8.6LaTex公式

既然Jupyter notebook能够使用Markdown,那么我们可以是Jupyter Notebook中编辑LaTex公式,举一个例子:在Markdown格式下的cell中输入如下内容:

$$ P(A \mid B) = \frac{P(B \mid A) \, P(A)}{P(B)} $$

便会生成相应的LaTeX公式:

8.7输出多个结果

一般在notebook中只会输出一个结果,通过设置能够同时输出多个。

默认情况下只会输出最近一个变量的值**,例子中是b**。

通过设置InteractiveShell.astnodeinteractivity参数为all,就可以让所有的变量或者声明都能显示出来,添加两行代码便可实现输出多个变量的效果:

from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = 'all'

8.8拼写检查

这是检查拼写错误的一个扩展,能够快速的发现我们拼写中的错误。需要主要的是这个插件是在Markdown格式下作用的:

本意表达的是:This is wrong question

8.9隐藏输入

当我们只想查看输出out部分的内容,可以将输入的代码进行隐藏:

下面是隐藏之前的效果:

九、快捷键

1、命令模式快捷键(按 Esc 键开启):

  • 命令模式将键盘命令与Jupyter Notebook笔记本命令相结合,可以通过键盘不同键的组合运行笔记本的命令。
  • esc键进入命令模式。
  • 命令模式下,单元格边框为灰色,且左侧边框线为蓝色粗线条
快捷键作用
Enter转入编辑模式
Shift-Enter运行本单元,选中下个单元
Ctrl-Enter运行本单元
Alt-Enter运行本单元,在其下插入新单元
Y单元转入代码状态
M单元转入 markdown 状态
R单元转入 raw 状态
1、2、6设定 1 、2、6级标题
Up选中上方单元
K选中上方单元
Down选中下方单元
J选中下方单元
Shift-K连续选择上方单元
Shift-J连续选择下方单元
A在上方插入新单元
B在下方插入新单元
X剪切选中的单元
C复制选中的单元
Shift-V粘贴到上方单元
V粘贴到下方单元
Z恢复删除的最后一个单元
D,D删除选中的单元
Shift-M合并选中的单元
Ctrl-S保存当前 NoteBook
S保存当前 NoteBook
L开关行号
O转换输出
Shift-O转换输出滚动
Esc关闭页面
Q关闭页面
H显示快捷键帮助
I,I中断 NoteBook 内核
0,0重启 NoteBook 内核
Shift忽略
Shift-Space向上滚动
Space向下滚动

2、编辑模式快捷键( 按 Enter 键启动)

  • 编辑模式使用户可以在单元格内编辑代码或文档。
  • enterreturn键进入编辑模式。
  • 编辑模式下,单元格边框和左侧边框线均为绿色
快捷键作用
Tab代码补全或缩进
Shift-Tab提示
Ctrl-]缩进
Ctrl-[解除缩进
Ctrl-A全选
Ctrl-Z撤销
Ctrl-Shift-Z重做
Ctrl-Y重做
Ctrl-Home跳到单元开头
Ctrl-Up跳到单元开头
Ctrl-End跳到单元末尾
Ctrl-Down跳到单元末尾
Ctrl-Left跳到左边一个字首
Ctrl-Right跳到右边一个字首
Ctrl-Backspace删除前面一个字
Ctrl-Delete删除后面一个字
Esc切换到命令模式
Ctrl-M切换到命令模式
Shift-Enter运行本单元,选中下一单元
Ctrl-Enter运行本单元
Alt-Enter运行本单元,在下面插入一单元
Ctrl-Shift–分割单元
Ctrl-Shift-Subtract分割单元
Ctrl-S保存当前 NoteBook
Shift忽略
Up光标上移或转入上一单元
Down光标下移或转入下一单元
Ctrl-/注释整行/撤销注释

十、魔术命令

IPython的特殊命令被称为魔术命令,这些命令被设计用于简化常见任务。

官网地址:https://ipython.readthedocs.io/en/stable/interactive/magics.html

魔术命令的前缀符号是百分号%,例如%timeit用来检查一段Python代码执行的时间。魔术命令可以直接使用,也可以赋值给变量再使用:

下面👇记录的是IPython的几个常用的魔法命令:

魔术命令作用
%pwd查看当前的工作目录
%cd更改当前的工作目录
%ls查看目录文件列表
%writefile写入文件
%run运行脚本;%run可以从.py文件中执行python代码,也可以指定ipynb文件
%whos查看当前变量
%reset清楚当前变量
%timeit测试单行代码运行时间
%hist打印命令输入历史
%paste从剪贴板中执行已经预先格式化的Python代码
%cpaste打开一个提示符,手动粘贴执行的python代码
%debug从最后发生报错的底部进入交互式调试器

十一、Jupyter Notebook换主题

在上面的图形中都是使用的默认主题:白色,实际上主题是可以更换的:

在jupyter notebook中安装并使用不同的主题

# 安装
pip install jupyterthemes
pip install --upgrade jupyterthemes

切换不同主题

# 查看所有颜色主题 --list
jt -l

# 选择主题 --theme
jt -t 主题名称

# 恢复默认主题 --recover
jt -r

1、查看主题

$jt -t monokai  # 选择某个主题
$jt -t oceans16

# 然后重新启动jupyter notebook

$jupyter notebook   # 启动命令

如果想改回原来的主题输入 jt -r 即可

往期精彩 回顾




Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/135959
 
322 次点击