1.6 使用Jupyter Notebook
在数据科学和科学计算领域有一个叫作Jupyter Notebook的神奇互动工具。使用它,我们就可以在交互式Web环境中编写和运行代码,该环境还具有可视化、可显示图像和视频的功能。它使方程式和原型设计的测试变得更加容易,不仅得到了40多种编程语言的支持,而且完全开源。
GitHub支持Jupyter Notebook(静态)。一个使用Jupyter Notebook创建的交互式Jupyter Notebook笔记本,可以通过Jupyter Notebook查看器或其他云存储设备进行共享。Jupyter Notebook被广泛用于编码机器学习算法、统计建模、数值模拟以及数据调整中。Jupyter Notebook本身是用Python实现的,但只要有不同编程语言的内核,就可以运行40多种编程语言。通过在终端输入以下命令检查计算机中是否安装了Python:
python --version
如果计算机中已经安装了Python,那么运行该命令后将会得到如图1-19所示的结果(此处版本号为2.7)。
图1-19 查看Python版本
这里推荐使用Python 2.7.x、3.5.x或更高版本。如果计算机中没有安装Python,那么运行上面的命令后将不会输出任何信息。
如果不熟悉Python和数据科学,则强烈建议安装Anaconda。数据科学常用的软件包(包括Jupyter Notebook)与Anaconda捆绑在一起,只需要像安装其他软件一样安装Anaconda,环境就能被轻易地搭建起来。可以通过访问其官网下载Anaconda,下载页面如图1-20所示。
图1-20 Anaconda下载页面
对于Linux用户,可以在终端输入下面的命令安装Python:
sudo apt-get install python
Jupyter已经被包含在Anaconda软件包中,可以通过输入下面的命令来检查Jupyter软件包是否是最新版本:
jupyter –version
运行上面的命令后,结果如图1-21所示。
图1-21 查看Jupyter版本
如果Jupyter不存在,则可以通过如下方法安装。不过,需要注意的是,首先必须安装了Anaconda。
conda install jupyter
安装Jupyter的另一种方法是使用pip命令:
pip install jupyter
现在,要一起使用Julia与Jupyter,需要IJulia包,可以使用Julia的包管理器来安装它,在REPL中输入如下命令:
01 julia> Pkg.update() 02 julia> Pkg.add("IJulia")
代码01行的作用是更新元数据和当前包,02行用来安装所需的IJulia包。在安装IJulia包后,我们可以通过在Jupyter Notebook中选择Julia来创建一个新的Notebook。大家可以根据不同的平台自行安装Jupyter,这里以macOS平台为例,界面如图1-22所示。
单击“New”下拉按钮,选择“Julia 0.7.0”选项,创建一个新的Julia Notebook,可以把它理解为运行在Web上的IDE。Jupyter Notebook的菜单栏和选项如图1-23所示。
Jupyter Notebook还支持在笔记本上使用MarkDown语法,同时对于GitHub Jupyter Notebook也非常友好。在这里运行Julia代码甚至比在REPL中运行还要简单,如图1-24所示的一个简单的范例展示了Jupyter Notebook的交互方式。
图1-22 选择Julia创建新的Notebook
图1-23 Jupyter Notebook的菜单栏和选项
图1-24 Jupyter Notebook交互方式
如图1-24所示,在Jupter中输入代码后,单击“运行”按钮即可运行代码,运行结果会被直接输出到下面区域中。
在Jupter中使用Julia和在REPL中使用没有任何区别。但因为有的包不支持在REPL中输出图表,所以当涉及可视化或图形时,Jupyter是一个更好的交互式环境。
下面的代码生成了一个高级图表(我们将在后面的章节中学习Gadfly和RDatasets),具体如范例1-2所示。
【范例1-2】使用第三方包创建图表
01 using Gadfly 02 using RDatasets 03 #创建一个数据帧 04 #我们将在后面的章节中了解数据帧 05 iris = dataset("datasets","iris") 06 #新建一个图表 07 p = plot(iris,x =:SepalLength,y =:SepalWidth,color =:Species, 08 Geom.point)
本例中,我们使用Gadfly和RDatasets包生成了一个高级图表。代码01和02行分别用来引入Gadfly和RDatasets包;05行用来创建一个数据帧,这里使用了RDatasets提供的预设好的数据帧;07行和08行用来新建一个图表,并把数据帧中的数据填入图表中。
运行结果如图1-25所示。
图1-25 范例1-2的运行结果