1.3 Anaconda与Jupyter Notebook

在1.2.2节中介绍Python的安装时,本书推荐使用Anaconda,并对Anaconda做了简单的介绍。事实上,Anaconda是强大又好用的开发环境,它集成了许多非常有用的工具,因此,很有必要单独用一节来介绍它。本节将介绍几个优秀的Anaconda工具,以及现在应用非常广泛的编程利器Jupyter Notebook。事实上,Anaconda和Jupyter Notebook已成为数据分析的标准环境。本书配套的源代码都是在Jupyter Notebook环境下完成的。

1.3.1 Anaconda

Anaconda集成了许多优秀的开发工具。下面,我们挑选几个来重点介绍一下。

1.Anaconda Navigator

以Windows操作系统为例,安装Anaconda之后,在“开始”菜单的搜索框中输入Anaconda Navigator就可以打开该工具。

Anaconda Navigator是Anaconda发行包中包含的桌面图形界面,可以用来方便地启动Python开发工具,不需要使用命令行的命令。Anaconda Navigator启动后的界面如图1-13所示。

从Anaconda Navigator的界面中可以看到,它为我们提供了许多开发工具,默认已经安装的有JupyterLab、Jupyter Notebook、Qt Console、Spyder、VS Code。若要启动某个工具,直接单击相应工具下面的Launch按钮即可,非常方便。

图1-13 Anaconda Navigator的界面

2.Anaconda Prompt

Anaconda Prompt可以当成Anaconda的终端,就像Windows操作系统里的命令行窗口一样。在Anaconda Prompt中,我们可以使用conda命令来管理Python库。conda是一个开源的软件包管理系统和环境管理系统,可以很方便地管理Python的库函数以及创建虚拟环境。以Windows操作系统为例,在“开始”菜单的搜索框里输入Anaconda Prompt就可以打开它。

Anaconda Prompt的界面与命令行窗口非常类似,如图1-14所示。

图1-14 Anaconda Prompt的界面

下面介绍几个非常有用的conda命令。

(1)列出所有已安装的包(包括很多Python库,如NumPy、Matplotlib等):

   > conda list

(2)安装包(例如安装Python的Pandas库):

   > conda install pandas

(3)卸载包(例如卸载Pandas库):

   > conda uninstall pandas

(4)更新包(例如更新Pandas库):

   > conda update pandas

1.3.2 Jupyter Notebook

Jupyter Notebook已经成为机器学习、深度学习以及数据分析时必备的工具了。那么,什么是Jupyter Notebook呢?Jupyter Notebook的图标如图1-15所示。

图1-15 Jupyter Notebook的图标

Jupyter Notebook是一个Web应用程序,可让我们创建并共享代码和文档,并支持代码、Latex公式、可视化和Markdown。目前,机器学习领域最热门的比赛Kaggle里的资料都是Jupyter的格式。入门深度学习,Jupyter Notebook是必不可少的重要工具。简单地说,我们可以在Jupyter Notebook里编写代码并执行,甚至可以给代码写上注释性文档。

我们刚才介绍了Anaconda Navigator,可以在Anaconda Navigator界面中找到Jupyter Notebook并直接打开它。Jupyter Notebook的主界面如图1-16所示。

图1-16 Jupyter Notebook的主界面

若要创建一个新的Notebook,只需单击主界面右侧的New命令,在下拉选项中选择一个Notebook类型即可,如图1-17所示。

图1-17 新建Notebook

例如,我们可以创建一个Python 3的Notebook。新建的Notebook页面如图1-18所示。

图1-18 新建的Notebook页面

新建Notebook的默认名称为Untitled,我们可以单击File菜单选择Rename命令修改名称,也可以单击Untitled直接修改。

菜单和快捷键下方就是编辑区,可以看到一个个单元(cell)。每个Notebook都由许多单元组成,每个单元可以设置不同的类型,最常用的两种类型是“代码”和“标记”,切换方式如图1-19所示。“代码”表示该单元用来编写Python代码,“标记”表示该单元用来编写Markdown文档。

图1-19 切换单元类型

1.Python代码

一般默认的单元类型是代码单元,以“In[ ]”开头。在代码单元里,可以输入任何代码并执行。例如,用键盘输入1+2,然后按组合键Shift+Enter,代码将被运行并显示结果,如图1-20所示。同时,切换到新的单元中。也可以通过菜单栏Cell→Run cells来运行这个单元。

图1-20 运行Python代码

Notebook有一个非常有趣的特性,即可以随时返回之前的单元,修改并重新运行。如果想使用不同的参数调试方程又不想运行整个脚本的时候,这个特性非常有用。

2.Markdown文档

除了编写Python代码之外,还可以在Notebook里编写Markdown文档用于注释,以增强文档的可读性和丰富性。按照上面介绍的方法,切换单元为“标记”,就可以编写Markdown文档了。

1)添加文本注释

可以在Markdown文档中添加一级标题(#)、二级标题(##)、三级标题(###)和解释性文档等,这样做最大的好处就是让程序代码的可读性更强。现在,我们给代码编写注释性文档,如图1-21所示。

图1-21 为代码编写注释性文档

2)插入图片

除了添加文本注释之外,还可以在Markdown文档中插入图片,例如输入如图1-22所示的命令,即可插入Jupyter图标的网络图片。

图1-22 插入网络图片

除了插入网络图片之外,还可以插入本地计算机中的图片,只要设置正确的图片路径即可。

3)插入Latex公式

除此之外,Markdown文档还支持Latex语法。可以在Markdown文档中按照Latex语法的规则写下公式,然后直接运行,就可以看到结果。

例如,在Jupyter代码中插入Latex公式,如图1-23所示。列举公式会更加方便用户理解程序,增强程序代码的可读性。

图1-23 插入Latex公式

3.Matplotlib与Jupyter Note结合使用

Matplotlib与Jupyter Notebook结合使用时,效果更好。为了在Jupyter Notebook中使用Matplotlib,只需要告诉Jupyter获取所有Matplotlib生成的图形,并把它们全部嵌入Notebook中,代码如下:

   %matplotlib inline

下面这段简单的代码将绘制二次曲线y=x2对应的图形。

   import numpy as np
   import matplotlib.pyplot as plt
   x = np.arange(20)
   y = x**2
   plt.plot(x, y)

运行以上代码,结果如图1-24所示。

可以看到,绘制的图形直接嵌入Notebook中,显示在代码下方。修改代码,重新运行,图形将自动同步更新。代码和图形放在同一个文件中,可以增强程序代码的可读性。

图1-24 Matplotlib绘图

关于Jupyter Notebook,我们就简单介绍至此。然而,Jupyter Notebook的功能远不止此,读者可以查阅相关资料,掌握更多Jupyter Notebook的使用技能。本书配套的所有源代码也都将在Jupyter Notebook环境下实现。