Python 有很多开发环境可供选择,我也常常被问起在工作中使用哪一种开发环境。我的答案有时会让人惊讶:我偏爱的开发环境是 IPython(http://ipython.org/)加上一个文本编辑器(Emacs 或 Atom,具体视心情而定)。IPython(interactive Python 的简称,即交互式Python)由 Fernando Perez 作为一个增强的 Python 解释器于 2001 年启动,并由此发展为一个项目。用 Perez 的原话来说,该项目致力于提供“科学计算的全生命周期开发工具”。如果将 Python 看作数据科学任务的引擎,那么 IPython 就是一个交互式控制面板。
除了作为 Python 的一个交互式接口,IPython 还提供了一些有用的 Python 语法附加功能,本书就将介绍其中最有用的一些。另外,IPython 被紧密地连接在 Jupyter 项目(http://jupyter.org)中。该项目提供一个基于浏览器的 Notebook,它可以开发、协作、分享甚至发布数据科学结果。IPython Notebook 其实只是通用 Jupyter Notebook 结构的特例,而Jupyter Notebook 不仅支持 Python,还包括用于 Julia、R 和其他编程语言的 Notebook。Jupyter Notebook 的格式与你此刻正在阅读的页面看起来其实没什么两样——本书的全部稿件就是用一组 IPython Notebook 写成的。
IPython 就是用 Python 进行有效的交互式科学计算和数据密集型计算。本章首先介绍IPython 对数据科学非常有用的功能,尤其关注它在语法上超越了 Python 的特性。接下来将深入介绍一些更有用的“魔法命令”,这些命令可以为与创建和使用数据科学代码相关的常规任务提高速度。最后将介绍 IPython Notebook 的一些特性,这些特性对于理解数据和分享结果非常有用。
1.1 shell还是Notebook
本章将介绍两种使用 IPython 的方式:IPython shell 和 IPython Notebook。本章大部分内容与两种方式都有关,并且示例会根据方便程度在两者中切换。在少数情况下仅会介绍一种工具,届时我会清楚地说明。在开始之前,先简单介绍一下如何启动 IPython shell 和IPython Notebook。
1.1.1 启动IPython shell
这一章和本书大部分内容一样,光靠眼睛看是学不会的。建议你通读一遍,并且用我们介绍的工具和语法动手实践一遍,毕竟通过实践形成的肌肉记忆远比简单阅读一遍持久得多。你可以在命令行中输入 ipython 启动 IPython 解释器。如果你安装了 Anaconda 或 EPD的 Python 发行版,系统中将会有一个特别的启动器(详情请参见 1.2 节)。
1.1.2 启动Jupyter Notebook
Jupyter Notebook 是 IPython shell 基于浏览器的图形界面,提供了一系列丰富的动态展示功能。Jupyter Notebook 不仅可以执行 Python/IPython 语句,还允许用户添加格式化文本、静态和动态的可视化图像、数学公式、JavaScript 插件,等等。不仅如此,这些 Notebook 文档还能以共享方式存储,以便其他人可以打开这些 Notebook,并且在他们自己的系统中执行这些 Notebook 代码。
尽管 IPython Notebook 是通过你的 Web 浏览器窗口进行查看和编辑的,但是它必须与一个正在运行的 Python 进程连接才能执行代码。想要启动这个进程(也被称作“核”,kernel),需要在你系统的命令行中输入以下命令: