在数据分析的道路上,你一定曾有过为新发现而激动不已的时刻,此时你急于将自己的发现告诉大家,却遇到了这样的问题:如何将我的分析过程清晰地表述出来呢?
为了能与同行们有效沟通,你需要重现整个分析过程,并将说明文字、代码、图表、公式、结论都整合在一个文档中。显然传统的文本编辑工具并不能满足这一需求,所以这儿隆重推荐一款神器 Jupyter Notebook,不仅能在文档中执行代码,还能以网页形式分享。
下图简单展示了Jupyter Notebook 文档的样式。
本文主要内容如下:
一、Jupyter Notebook 介绍
- 文学编程
- 历史传承
- 优点
二、Jupyter Notebook 使用入门
- 安装
- 运行
- 界面
一、Jupyter Notebook 介绍
官网:http://jupyter.org/
文学编程
在介绍Jupyter Notebook之前,让我们先来看一个概念:文学编程 ( Literate programming ),这是由 Donald Knuth 提出的编程方法。传统的结构化编程,人们需要按计算机的逻辑顺序来编写代码;与此相反,文学编程则可以让人们按照自己的思维逻辑来开发程序。
简单来说,文学编程的读者不是机器,而是人。 我们从写出让机器读懂的代码,过渡到向人们解说如何让机器实现我们的想法,其中除了代码,更多的是叙述性的文字、图表等内容。这么一看,这不正是数据分析人员所需要的编码风格么?不仅要当好一个程序员,还得当好一个作家。那么 Jupyter Notebook 就是不可或缺的一款集编程和写作于一体的效率工具。
历史传承
也许说到 Jupyter 你会觉得陌生,但想必你或多或少听过鼎鼎大名的 IPython。其实Jupyter 脱胎于 IPython 项目,IPython 顾名思义,是专注于 Python 的项目,但随着项目发展壮大,已经不仅仅局限于 Python 这一种编程语言了。Jupyter 的名字就很好地释义了这一发展过程,它是 Julia、Python 以及 R 语言的组合,字形相近于木星(Jupiter),而且现在支持的语言也远超这三种了。
优点
以下列举了 Jupyter Notebook 的众多优点:
1. 极其适合数据分析
想象一下如下混乱的场景:你在终端中运行程序,可视化结果却显示在另一个窗口中,包含函数和类的脚本存在其他文档中,更可恶的是你还需另外写一份说明文档来解释程序如何执行以及结果如何。此时 Jupyter Notebook 从天而降,将所有内容收归一处,你是不是顿觉灵台清明,思路更加清晰了呢?
支持多语言
也许你习惯使用 R 语言来做数据分析,或者是想用学术界常用的 MATLAB 和 Mathematica,这些都不成问题,只要安装相对应的核(kernel)即可。这里列出了 Jupyter 支持的所有语言,供您参考。
2. 分享便捷
支持以网页的形式分享,GitHub 中天然支持 Notebook 展示,也可以通过 nbviewer 分享你的文档。当然也支持导出成 HTML、Markdown 、PDF 等多种格式的文档。
3. 远程运行
在任何地点都可以通过网络链接远程服务器来实现运算,这里给出一个远程运行的例子,可以体验一下 Jupyter Notebook。
4. 交互式展现
不仅可以输出图片、视频、数学公式,甚至可以呈现一些互动的可视化内容,比如可以缩放的地图或者是可以旋转的三维模型。这就需要交互式插件(Interactive widgets)来支持,更多内容请参考这里。
二、Jupyter Notebook 使用入门
安装
本人在python3,windows环境直接通过pip安装:
pip install jupyter notebook
运行
安装成功后,通过cmd命令行方式切换到python运行环境下,然后直接命令行中输入:
jupyter notebook
此时你的Web浏览器被自动打开,显示文件目录。通过点击右上角的 new 创建新文档。
界面
Notebook 文档是由一系列单元(Cell)构成,主要有两种形式的单元:
代码单元:这里是你编写代码的地方,通过按 Shift + Enter 运行代码,其结果显示在本单元下方。代码单元左边有 In [1]: 这样的序列标记,方便人们查看代码的执行次序,如下图:
Markdown单元:在这里对文本进行编辑,采用 markdown的语法规范,可以设置文本格式、插入链接、图片甚至数学公式。同样使用Shift+Enter运行markdown单元来显示格式化的文本,如下图:
类似于Linux的Vim编辑器,在notebook中也有两种模式:
编辑模式:编辑文本和代码。选中单元并按 Enter 键进入编辑模式,此时单元左侧显示绿色竖线。
命令模式:用于执行键盘输入的快捷命令。通过Esc键进入命令模式,此时单元左侧显示蓝色竖线。
如果要使用快捷键,首先按Esc键进入命令模式,然后按相应的键实现对文档的操作,注意查看所有快捷命令可以按H。
比如切换成代码单元(Y)或markdown 单元(M),或者在本单元的下方增加一单元(B)。
当命令模式切换到编辑模式,只要点击具体单元Cell输入框就可以进行编辑了。
以上主要是Jupyter Notebook简单的一些介绍,具体高级用法可以在使用当中学习。
以上文章主要借鉴了作者:“鱼心DrFish” ,链接:https://www.jianshu.com/p/86117613b7a6,在此感谢!