搭建基于 Python 的科学计算和数据分析环境
科学领域的应用是 Python 语言的专长之一。相比 Matlab,作为一个完备的编程语言,Python 具备很多优势:该语言有面向过程、面向对象、函数式等多种编程范式。并且,Python 的开发和运行环境更加轻量级,开发工具也更加多样和自由,程序集成和效率优化方案更成熟。借力数据科学和机器学习等热门应用的东风,2017 年 Python 成为 Stackoverflow 网站年度上升最快的编程语言,并在 2018 年成为 TIOBE 年度编程语言。
本文介绍 Python 科学计算和数据分析模块的安装和配置过程。
Python 版本
当前的 Python 语言分为 Python 2 和 Python 3 两大版本。如果你参考比较老旧的资料,它可能会以兼容性问题等缘由向你推荐 Python 2。但这些已经是过去式了,除非已停止维护,目前绝大部分的模块包都支持 Python 3。Python 3 具有许多新特性,幻灯片 10 awesome features of Python that you can’t use because you refuse to upgrade to Python 3 在这方面做了精准的概括。
另外,Python 2 将在 2020 年被停止支持和维护,与此同时很多第三方扩展库也将同时停止对 Python 2 的支持,这包括本文提到的所有工具包。一个方法是:如果你找不到必须使用 Python 2 的理由,那么应该果断投向 Python 3 的怀抱。
所需模块
Python 的科学计算和数据分析功能主要依赖于几个著名的模块实现,因此本文也将介绍这几个模块的安装过程。这些模块主要有:
- NumPy,提供 N 维数组类型,该库是科学计算的基础;
- SciPy,科学计算包,Matlab 工具箱的 Python 实现;
- SymPy,符号计算库,求解方程和公式推导;
- matplotlib,绘制各种二维图形(统计图等);
- Pandas,数据分析库,处理大量数据,用于分析、建模和可视化;
- Jupyter Notebook,提供一个浏览器中使用的交互式 Python 环境。
安装 Anaconda
Anaconda 是一个 Python 发行版,相比官方发布的 CPython 解释器,Anaconda 集成了大量的第三方库,致力于简化包的管理和部署,专注于大规模的数据处理、科学计算、预测分析和数据挖掘等任务。Anaconda 现提供适用于 Windows、Linux 和 macOS 等操作系统的安装包,整个安装过程简单友好。若你不想在 Python 语言底层耗费太多的时间,只需要一个简单快捷的部署方案,Anaconda 是一个非常优秀的选择。但其缺点是安装包较大,约 400 至 600 MB。
在 Windows 操作系统上安装 Anaconda 时,需避免安装路径中包含中文字符或者空格,以免造成兼容性问题。安装完成后,还要配置环境变量,将 Anaconda 安装路径及其中的 Scripts 文件夹路径加入到系统的 Path 变量中。
为 Linux 操作系统安装 Anaconda 也非常简单,其安装文件已经被封装成 SHELL 程序脚本。你只需要下载对应的安装文件,然后使用 Bash 执行它。安装时程序将提示你输入安装路径等,按照其提示操作即可顺利完成安装过程。
自定义安装
如果你只需要为数不多的几个 Python 库,并且希望节约计算机磁盘空间,那么可以手动来安装自己需要的库。加州大学尔湾分校(UC Irvine)的网站上提供了预编译的可用于 Windows 操作系统的许多 Python 扩展库,其中包括了 NumPy、SciPy 等多个扩展库的程序包。你可以根据自己的 Python 版本下载对应的程序包文件。
我使用的解释器版本是 64 位的 Python 3.5,因此下载了如下程序包文件:
- numpy‑1.14.3+mkl‑cp35‑cp35m‑win_amd64.whl;
- scipy‑1.0.1‑cp35‑cp35m‑win_amd64.whl;
- sympy‑1.1.1‑py2.py3‑none‑any.whl;
- matplotlib‑2.2.2‑cp35‑cp35m‑win_amd64.whl;
- pandas‑0.22.3‑cp35‑cp35m‑win_amd64.whl。
由于该页面提供的程序包使用 Wheel 打包,因此你需要首先安装 Wheel。在 “命令提示符” 窗口执行:
1 | $ pip install wheel |
使用 cd
命令进入程序包文件所在目录,依次运行以下命令安装所下载的 .whl 包文件:
1 | $ pip install numpy‑1.14.3+mkl‑cp35‑cp35m‑win_amd64.whl |
若安装中出现类似 “numpy-1.13.3+mkl-cp35-cp35m-win_amd64.whl is not a supported wheel on this platform.” 的错误,那么将其文件名中的 “cp35m” 改为 “none”,然后重新安装即可。该问题的详细解答可参考 Stackoverflow 网站的相关条目。
在联网的情况下,之后的 Jupyter Notebook 可以通过 pip 在线安装:
1 | $ pip install jupyter |
如果你希望在离线情况下完成部署,那么可以在 UC Irvine 的网站上下载所有模块及其依赖的程序包进行安装。例如,数据分析工具包 Pandas 依赖于 numpy、dateutil、pytz、setuptools 这些模块,那么在安装 Pandas 之前,你需要首先下载并安装 numpy、dateutil、pytz、setuptools 这些包。此时为了简化配置过程,强烈建议你直接安装 Anaconda。
补充
Jupyter Notebook(原 IPython Notebook)是一个非常优秀的数据分析工具,它提供的基于浏览器的交互式计算界面使用方便、功能强大,使用过程如行云流水。既可以在本地计算机进行计算,也能作为客户端操作远程工作站或者服务器。更棒的是它支持 Markdown 和 Latex 语法,可以在计算过程中插入文字描述或公式,然后轻松地将计算过程导出为文档或演示文稿使用。要体验 Jupyter Notebook 的魅力,可以在命令提示符中执行:
1 | $ jupyter notebook |
执行该命令后,程序将在浏览器中打开如下图所示的页面,该页面就是 Jupyter Notebook 提供的交互式计算界面。
你可以在其中选择要进入的文件夹,然后点击 “New” 按钮创建一个基于 Python 3 环境的笔记本,进行交互式计算的体验。