Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >快速入门 Jupyter notebook

快速入门 Jupyter notebook

作者头像
1480
发布于 2019-08-19 02:44:16
发布于 2019-08-19 02:44:16
92100
代码可运行
举报
文章被收录于专栏:数据分析1480数据分析1480
运行总次数:0
代码可运行

原文链接:https://www.dataquest.io/blog/jupyter-notebook-tutorial/

Jupyter notebook 是一个很强大的交互式和展示数据科学项目的工具,它可以作为一个开发文档,包含代码、解释说明文字、代码运行结果、数学公式等等,功能非常强大,也是现在非常流行的工具。

本文会通过一个简单的数据分析例子来介绍 Jupyter notebook 的使用方法。这里的例子就是给定一个自 1955 年发布以来,一共 50 年时间的美国 500 家公司的数据,任务是分析这些公司的利润变化过程。

1. 安装

最简单的安装方式就是通过 Anaconda 进行安装,Anaconda 是使用最广泛的环境管理工具,并且它可以预先安装很多常用的第三方库,包括 numpypandasmatplotlib 等。

具体的 Anaconda 可以查看之前公众号发表过的一篇文章--Python 基础入门--简介和环境配置

除了通过 Anaconda 安装,也可以直接采用 pip

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install jupyter

2. 创建你的第一个 Notebook

这一部分将介绍如何运行和保存 notebooks,熟悉 Jupyter notebook 的结构和交互界面。这里将通过一个例子来熟悉一些核心的用法,更好的了解 Jupyter notebook 的使用。

运行 Jupyter

Windows,可以通过添加到开始菜单的快捷方式运行 Jupyter ,当然也可以通过在命令行输入命令 jupyter notebook 开始运行,然后会在默认浏览器中打开一个新的窗口,窗口内容如下:

当然上述还不是一个 notebook,它是 Notebook 的管理界面,用于管理当前文件夹的所有 Notebooks。

注意,这里仅仅展示 Jupyter 运行时候的所在文件夹内的文件和文件夹,也就是在命令行运行 jupyter notebook 时所在的文件夹,当然这个也可以改变,运行命令的时候可以指定文件夹位置,即输入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
jupyter notebook filepath

此外,这里在浏览器上的 URL 地址是类似 http://localhost:8888/tree,其中 localhost 是表示本地地址,然后 8888 是端口。

接下来就是创建一个新的 notebook,可以如下图所示,在管理界面的右上角位置,点击 New 菜单,这里就可以选择 Python 3 (或者其他的版本),然后就可以创建成功,并且是在新的窗口打开这个 notebook,在默认命名就是 Untitled.ipynb

ipynb 文件

每个 ipynb 文件都是通过 JSON 格式来描述 notebook 的内容,包括每个单元及其内容,都是通过 metadata 的格式展示。这里可以在打开 ipynb 文件后,菜单中选择 Edit->Edit Notebook Metadata ,进行编辑。

notebook 界面

现在开始介绍下 notebook 的界面信息,一个新的 notebook 界面如下图所示。

这里有两个术语需要知道--cellskernels ,两个都是非常重要的术语:

  • kernel :表示计算引擎,用于执行 notebook 中的代码块
  • cell :单元块,用于展示文本或者是代码。
单元(Cells)

首先介绍的是 Cells ,一个 Cell 就是上图中绿色框部分,它是 notebook 的主要部分,通常有两种主要的 cell 类似:

  • code cell :包括需要执行的代码,以及其运行结果
  • Markdown cell :包含的是 Markdown 格式的文本并且其执行结果

下图展示了一个简单的例子,第一行 Jupyter 入门教程 这个就是一个 Markdown cell ,这里展示的是执行这个 cell 的结果,如果需要执行一个 cell ,可以点击 Run 按钮,或者快捷键 Ctrl + Enter 即可,然后下方两个都是 code cell ,第一个是导入第三方库,第二个则是打印一段话以及其运行结果。

可以注意到 code cell 的左侧会有一个标签 In [1] ,这里的数字表示该代码块运行的次序,即在该 notebook 中,如果没有执行,显示的是 In [ ] ,如果是该 notebook 第一个运行的代码块,则是 In [1] ,如果再次运行,则显示 In [2],依次类推,同个代码块多次执行,这个数字也是会改变的。而 InInput 的缩写。如果代码块运行时间有点久,它会显示 In [*] ,表示当前代码块正在运行中。

对于 notebook,还可以直接展示变量的数值,或者是函数的返回值,不需要调用 print 函数,如下图所示,当然它只会打印当前单元的最后一行的内容。

还需要注意的一件事情就是,对于一个单元,如果正在编辑,其边界框显示的是绿色,而运行时候则显示蓝色。这里展示的就是两种模式,即绿色表示编辑模式,蓝色表示命令模式

快捷键

notebook 有很多快捷键,可以通过菜单中的 Help->Keyboard Shortcuts 查看,也可以直接用快捷键 Ctrl+Shift+P 查看。下面简单介绍一些快捷键:

  • 编辑模式和命令模式可以通过 EscEnter 进行转换,一般是按 Esc 进入命令模式,Enter 进入编辑模式

命令模式下:

  • cell 之间上下浏览采用上下箭头,或者 UpDown
  • A 表示在当前 cell 上方插入一个新的 cell ,而 B 则是下方插入新的cell
  • M 表示变为 Markdown cell ,而 Y 是表示变为 code cell
  • 连续按两次 D 是删除当前 cell
  • Z 是撤销操作
  • Shift 加上 Up 或者 Down 可以一次选择多个 cells ,接着采用 Shift + M 可以合并多个 cells
Markdown

Markdown 是一个轻量级的易于学习使用的标记语言,主要用于格式化文本文字。它的语法类似 HTML 语言,是一个非常有帮助的语言,可以用于添加注释说明或者添加图片。

可以尝试在 Jupyter notebook 中输入下面的文字,记住是在 Markdown cell中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# This is a level 1 heading
## This is a level 2 heading
This is some plain text that forms a paragraph.
Add emphasis via **bold** and __bold__, or *italic* and _italic_.
Paragraphs must be separated by an empty line.
* Sometimes we want to include lists.
* Which can be indented.
1. Lists can also be numbered.
2. For ordered lists.
[It is possible to include hyperlinks](https://www.example.com)
Inline code uses single backticks: `foo()`, and code blocks use triple backticks:
```
bar()
```
Or can be indented by 4 spaces:
foo()
And finally, adding images is easy: ![Alt text](https://www.example.com/image.jpg)

得到的结果如下图所示:

如果想添加图片,有三种做法:

  • 使用网络上的图片,添加其网络链接 URL,比如上述例子就是这种做法,URL 是 https://www.example.com/image.jpg
  • 采用一个本地 URL,那么图片就只能使用在该 notebook 中,比如在同一个 git 仓库中
  • 菜单栏选择 “Edit->Insert Image",这种做法会将图片转换为字符串形式并存储在 .ipynb 文件中,这种做法会增加 ipynb 文件的大小

Markdown 的使用方法可以参考其发明者 John Gruber 的官方教程:

https://daringfireball.net/projects/markdown/syntax

Kernels

每个 notebook 都有一个 kernel。当执行一个单元内的代码的时候,就是采用 kernel 来运行代码,并将结果输出显示在单元内。同时 kernel 的状态会保留,并且不止局限在一个单元内,即一个单元内的变量或者导入的第三方库,也是可以在另一个单元内使用的,并不是相互独立的。

某种程度来说,notebook 可以看做是一个脚本文件,除了增加了更多输入方式,比如说明文字、图片等等。

这里同样用一个代码例子进行介绍 kernel 的这种特性,如下图所示,分别在两个单元内输入两段代码,第一个单元内时导入 numpy 并定义函数 square(),而第二个单元内就调用了这个函数 square() ,并成功运行输出结果。

大部分情况下都是自顶向下的运行每个单元的代码,但这并不绝对,实际上是可以重新回到任意一个单元,再次执行这段代码,因此每个单元左侧的 In [ ] 就非常有用,其数字就告诉了我们它是运行的第几个单元。

此外,我们还可以重新运行整个 kernel,这里介绍菜单 Kernel 中的几个选项:

  • Restart :重新开始 kernel,这会清空 notebook 中所有的变量定义
  • Restart & Clear Output: 和第一个选项相同,但还会将所有输出都清除
  • Restart & Run All: 重新开始,并且会自动从头开始运行所有的单元内的代码

通常如果 kernel 陷入某个单元的代码运行中,希望停止该代码的运行,则可以采用 Interupt 选项。

选择一个 kernel

Kernel 菜单中同样提供了一个更换 kernel 的选项,最开始创建一个 notebook 的时候,就是选择了一个 kernel ,当然这里能否选择其他的 kernel ,取决于是否有安装,比如 Python 的版本,当你同时安装了 python3.6python2.7 ,那么就有这两个选择,除了 Python 语言,Juypter notebook 支持的 kernel 还包括其他超过一百种语言,比如 Java、C、R、Julia 等等。

3. 数据分析例子

现在就开始文章开始说的数据分析例子,即从一份公司财富数据中分析公司的利润变化情况。

命名 notebooks

首先,给 notebook 命名一个有意义的名字,比如 jupyter-notebook-tuorial,可以直接在 notebook 界面直接点击上方文件名,如果未命名,那就是 Untitle.ipynb ,当然也可以返回管理界面进行命名,如下所示,选择 notebook 后,上方会出现一行选项,包括:

  • Duplicate:复制
  • Shutdown:停止该 notebook 的 kernel
  • View:查看 notebook 内容
  • Edit :编辑其 metadata 内容

以及还有一个删除文件的选项。

注意,关闭 notebook 的界面并不会关掉 notebook 的 kernel,它会一直在后台运行,在管理界面看到 notebook 还是绿色状态,就表明其在运行,这需要选择 Shutdown 选项,或者命令行里关掉 Jupyter notebook 的命令。

准备工作

首先导入一些需要用的第三方库:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
%matplotlib inline
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style="darkgrid")

pandas 用于处理数据,Matplotlib 用于绘制图表,而 seaborn 可以让图表更加漂亮。通常也需要导入 Numpy ,不过在本例中我们将通过 pandas 来使用。此外,%matplotlib inline 这并不是 python 的命令,它是 Jupyter 中独有的魔法命令,它主要是让 Jupyter 可以捕获 Matplotlib 的图片,并在单元输出中渲染。

接着就是读取数据:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df = pd.read_csv('fortune500.csv')
保存和检查点(checkpoint)

在开始前,要记得定时保存文件,这可以直接采用快捷键 Ctrl + S 保存文件,它是通过一个命令--“保存和检查点”实现的,那么什么是检查点呢?

每次创建一个新的 notebook,同时也创建了一个 checkpoint 文件,它保存在一个隐藏的子文件夹 .ipynb_checkpoints 中,并且也是一个 .ipynb 文件。默认 Jupyter 会每隔 120 秒自动保存 notebook 的内容到 checkpoint 文件中,而当你手动保存的时候,也会更新 notebook 和 checkpoint 文件。这个文件可以在因为意外原因关闭 notebook 后恢复你未保存的内容,可以在菜单中 File->Revert to Checkpoint 中恢复。

对数据集的探索

现在开始处理我们的数据集,通过 pandas 读取后得到的是称为 DataFrame数据结构,首先就是先查看下数据集的内容,输入以下两行代码,分别表示输出数据的前五行,和最后五行的内容。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.head()
df.tail()

输出内容如下所示:

通过查看,我们了解到每行就是一个公司在某一年的数据,然后总共有 5 列,分别表示年份、排名、公司名字、收入和利润。

接着,为了方便,可以对列重命名:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.columns = ['year', 'rank', 'company', 'revenue', 'profit']

然后,还可以查看数据量,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
len(df)

如下图所示,总共有 25500 条数据,刚好就是 500 家公司从 1955 到 2005 的数据量。

接着,我们再查看数据集是否和我们希望导入的一样,一个简单的检查方法就是查看数据类型是否正确:

这里可以发现 profit 数据类型居然是 object 而不是和收入 revenue 一样的float64 类型,这表示其中可能包含一些非数字的数值,因此我们需要检查一下:

输出结果表明确实存在非整数的数值,而是是 N.A,然后我们需要确定是否包含其他类型的数值:

输出结果表示只有 N.A ,那么该如何处理这种缺失情况呢,这首先取决有多少行数据缺失了 profit :

369 条数据缺失,相比于总共 25500 条数据,仅占据 1.5% 左右。如果缺失的数据随着年份的变化符合正态分布,那么最简单的方法就是直接删除这部分数据集,代码如下所示

从结果看,缺失数据最多的一年也就是 25 条也不到,相比每年 500 条数据,最多占据 4%,并且只有在 90 年代的数据缺失会超过 20 条,其余年份基本在 10 条以下,因此可以接受直接删除缺失值的数据,代码如下:

删除数据后,profit 就是 float64 类型了。

简单的数据探索完成了,接下来进行图表的绘制。

采用 matplotlib 进行绘制图表

首先绘制随着年份变化的平均利润表,同时也会绘制收入随年份的变化情况,如下图所示:

结果看起来有点类似指数式增长,但出现两次巨大的下降情况,这其实和当时发生的事件有关系,接下来可以看看收入的变化情况,如下图所示:

从收入看,变化并没有像利润一样出现两次波动。

参考 https://stackoverflow.com/a/47582329/604687,我们添加了利润和收入的标准差情况,用于反馈同一年不同公司的收入或者利润差距,如下图所示:

结果表明了不同公司的差距还是很大的,存在有收入几十亿,也有亏损几十亿的公司。

其实还有很多问题可以深入探讨,但目前给出的例子已经足够入门 Jupyter notebook,这部分例子展示了如何分析探索数据,绘制数据的图表。


参考

  • Markdown:https://www.markdownguide.org/getting-started
  • https://stackoverflow.com/a/47582329/604687
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据分析1480 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
[第二周]Jupyter Notebook和Markdown知识点汇总
打开Notebook,可以看到主面板。在菜单栏中有Files、Running、Clusters、Conda四个选项。用到最多的是Files,我们可以在这里完成notebook的新建、重命名、复制等操作。具体功能如下:
OrekiShiko
2019/03/09
2.6K0
[第二周]Jupyter Notebook和Markdown知识点汇总
真是绝了!史上最详细的Jupyter Notebook入门教程
Jupyter Notebook 是一个在浏览器中使用的交互式的笔记本,可以实现将代码、文字完美结合起来,它的受众群体大多数是一些从事数据科学领域相关(机器学习、数据分析等)的人员。这里会告诉大家Jupyter Notebook入门时常用功能用法。
abs_zero
2018/04/11
30.6K2
真是绝了!史上最详细的Jupyter Notebook入门教程
Jupyter notebook使用指南
一、Jupyter介绍 Jupyter Notebook是以web交互式的编程接口,是IPython notebook的升级版本。主要是针对python,另外支持运行 40 多种编程语言。Jupyter可以在个人机器开发,也可以连接到集群中使用分布式计算引擎spark等以及数据库(mysql/hive/hdfs)。 Jupyter相对于其他python编程工具来说,除了通常的新建、删除、更改、下载编程文件外,还支持在线编程运算可帮助持续开发,特别在企业中有些项目需要持续很长时间的开发,每天下班后关闭jup
智能算法
2018/04/03
7.2K0
Jupyter notebook使用指南
上手jupyter notebook神器
Jupyter Notebook非常活跃于深度学习领域。在项目的实验测试阶段,它相比于用 py 文件来直接编程更方便一些。在项目结束之后如果要写项目报告,用 Jupyter 也比较合适。
叶庭云
2021/12/01
2K0
上手jupyter notebook神器
Jupyter notebook使用技巧大全
Jupyter Notebook是一款开源的web应用,它允许使用者创建和分享包含代码,公式,可视化图表和纯文本的文档,并支持多种编程语言的交互式计算,对于python用户来讲更是一款十分方便的代码编写工具。只需要通过web浏览器就可以很方便地进行数据清洗和转换,数值模拟,统计建模,数据可视化,机器学习等。本文主要介绍Jupyter Notebook结合python的使用。
超哥的杂货铺
2019/12/18
2.2K0
Jupyter notebook使用技巧大全
Jupyter notebook快速入门教程
如果你想使用Python学习数据分析或数据挖掘,那么它应该是你第一个应该知道并会使用的工具,它很容易上手,用起来非常方便,是个对新手非常友好的工具。而事实也证明它的确很好用,在数据挖掘平台 Kaggle 上,使用 Python 的数据爱好者绝大多数使用 jupyter notebook 来实现分析和建模的过程,因此,如果你想学习机器学习,数据挖掘,那么这款软件你真的应该了解一下。
Python数据科学
2018/08/06
1.5K0
Jupyter notebook快速入门教程
Jupyter Notebook入门
Jupyter Notebook是一种交互式计算环境,能够让用户在浏览器中编写和执行代码,并与代码的运行结果、文本、图像、视频等进行交互。它的灵活性、易用性和可视化效果使它成为各种数据分析、机器学习和科学计算任务的首选工具。本文将介绍Jupyter Notebook的基本概念、使用方法以及一些常用技巧。
大盘鸡拌面
2023/10/26
7820
机器学习新手必看:Jupyter Notebook入门指南
翻译 | 张建军 出品 | 人工智能头条(公众号ID:AI_Thinker) 【人工智能头条导读】Jupyter Notebook 是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码、数学方程、可视化和 Markdown,其用途包括数据清理和转换、数值模拟、统计建模、机器学习等等。目前,数据挖掘领域中最热门的比赛 Kaggle 里的资料都是 Jupyter 格式。对于机器学习新手来说,学会使用 Jupyter Notebook 非常重要。 下面这篇 Jupyter Notebook 入门指
用户1737318
2018/06/05
3.2K0
[译]27个Jupyter Notebook小提示与技巧
Jupyter notebook, 前身是 IPython notebook, 它是一个非常灵活的工具,有助于帮助你构建很多可读的分析,你可以在里面同时保留代码,图片,评论,公式和绘制的图像。
用户1558438
2018/08/23
1.7K0
Jupyter notebook入门教程(上)
本文介绍了Jupyter Notebook的入门教程,首先介绍了Jupyter Notebook是什么,以及它的主要特点。然后详细讲解了如何安装Jupyter Notebook,并提供了Jupyter Notebook的入门示例。最后介绍了如何创建新的笔记本、如何导入已有的笔记本、如何编辑笔记本结构、如何运行代码、如何添加注释和如何保存笔记本等操作。
红色石头
2017/12/28
1.6K0
Jupyter notebook入门教程(上)
Python编程神器Jupyter Notebook使用的28个秘诀(附代码)
[ 导读 ]最近做实验一直是用Jupyter Notebook编程,有一种打草稿的便捷感,在dataquest上看到一篇博客总结了28种Jupyter Notebook的使用技巧。为了方便大家理解,对原文一个简略的地方进行了适当的解释和扩充。希望大家在用Jupyter Notebook编程时可以更加爽快。
数据派THU
2019/12/31
4.8K0
Python编程神器Jupyter Notebook使用的28个秘诀(附代码)
[第八周]Anaconda入门:Navigator、Spyder和Jupyter Notebook
Anaconda安装后,可以从菜单中看到它包含几个应用程序,其中Anaconda Navigator是这几个程序的导航入口。
OrekiShiko
2019/04/23
3.7K0
AI编程常用工具 Jupyter Notebook
我们先来看 4 个常用的编程工具:Sublime Text、Vim、Jupyter。虽然我介绍的是 Jupyter,但并不是要求你必须使用它,你也可以根据自己的喜好自由选择。
程序猿Damon
2023/09/04
6770
AI编程常用工具 Jupyter Notebook
Jupyter Notebook的安装和使用
Jupyter Notebook,原名IPython Notbook,是一个开源的WEB应用程序,在WEB端为用户提供交互式的编程体验和服务。名字源自Julia、Python和R(数据科学的三种开源语言),功能类似于IDE。
Python碎片公众号
2021/02/26
1.4K0
Jupyter Notebook的安装和使用
Jupyter Notebook介绍(上篇)
2019年的第一篇~先祝大家新年快乐!在2019开开心心打代码,顺顺利利debug!
MeteoAI
2019/07/24
1.6K0
数据分析之jupyter notebook工具
  打开终端输入: jupyter notebook ,这是就会在浏览器上打开一个jupyter notebook工作页面。
Se7eN_HOU
2023/07/24
4120
数据分析之jupyter notebook工具
Jupyter Notebook
 Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。在本文中,我们将介绍 Jupyter notebook 的主要特性,以及为什么对于希望编写漂亮的交互式文档的人来说是一个强大工具。 在开始使用 notebook 之前,我们先在cmd中使用pip安装该库 pip install jupyter 安装好之后运行命令 jupyter notebook 你会看到: [I 08:34:12.265 NotebookApp] Writi
拾点阳光
2018/05/11
1.9K0
jupyter notebook的安装与使用
最近由于项目需要,开始学习python,然后发现一个非常有用的python交互式编辑器,非常容易上手而且非常有用和实在,本博文是对学习jupyter notebook的一个汇总和记录,与大家一起分享!下面的内容是针对ubuntu 系统的,当然,jupyter notebook在windows也是支持的。
全栈程序员站长
2022/06/27
9810
jupyter notebook的安装与使用
18 个 Jupyter Notebook 小技巧,帮助你快速腾飞
Jupyter Notebook 是干嘛的就不再过多介绍了,这篇文章收集了一些顶级的 Jupyter Notebook 技巧,可以让你迅速成为一个 Jupyter 超级使用者!
周萝卜
2021/03/16
1.4K0
Jupyter notebook 快速入门
在浏览器中输入http://localhost:8888,就出现了notebook的页面。
用户2936342
2018/08/27
6920
Jupyter notebook 快速入门
相关推荐
[第二周]Jupyter Notebook和Markdown知识点汇总
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验