虽然这一系列文章是关于NumPy的,但这个软件包并不需要介绍,因为许多读者阅读这本书是为了了解更多关于NumPy的知识,而不是为了知道NumPy是什么。
不过,为了公平起见,我们还是要做一个小小的介绍,以防你错过了一些关于 NumPy 的内容。NumPy 是 Python 编程语言的一个库,添加了对大型多维数组和矩阵的支持,以及对这些数组进行操作的大量高级数学方法。
NumPy 的祖先 Numeric 最初由 Jim Hugunin 创建,其他几位开发者也为其做出了贡献。2005 年,Travis Oliphant 将竞争对手 Numarray 的功能融入 Numeric,并进行了大量修改,创建了 NumPy。NumPy 是一款开源软件,拥有众多贡献者。
提示:NumPy 有时发音为 /ˈnʌmpaɪ/(NUM-py),有时发音为 /ˈnʌmpi/(NUM-pee)。因此,你可能会发现其他一些 NumPy 用户的发音与你不同。
NumPy 以高效数组而闻名。这种声誉部分归功于索引的简易性。我们将使用图像演示高级索引技巧。在深入学习索引之前,我们将安装必要的软件--SciPy 和 PIL。
在本章和其他章节中,我们将使用以下导入:
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> import scipy
本章中的一些示例涉及对图像的操作。为此,我们需要 Python 图像库 (PIL),不过不用担心;本章在必要时会给出安装 PIL 和其他必要 Python 软件的说明和指针。
安装 SciPy
SciPy 是 Python 的科学库,与 NumPy 关系密切。事实上,SciPy 和 NumPy 多年前曾是同一个项目。SciPy 和 NumPy 一样,都是 BSD 许可下的开源项目。
因此,我们将从安装 SciPy 开始本章的学习。SciPy 提供高级功能,包括统计、信号处理、线性代数、优化、FFT、ODE 求解器、插值、特殊方法和积分。SciPy 与 NumPy 有一些重叠,但 NumPy 主要提供数组功能。
五个步骤就能完成,让我们看看是如何做到的。
在本章节中,我们将介绍安装 SciPy 的步骤:
从源代码安装: 如果安装了 Git,可以使用以下命令克隆 SciPy 仓库:
$> git clone https://github.com/scipy/scipy.git
$> python setup.py build
$> python setup.py install --user
将 SciPy 安装到您的主目录。它需要 Python 2.6 或更高版本。在构建之前,还需要安装 SciPy 依赖的下列软件包:
BLAS 和 LAPACK 库
C 和 Fortran 编译器
您可能已经在安装 NumPy 时安装了这些软件。
首先。我们需要安装 SciPy。我们将通过一些常用 Linux 发行版的必要步骤来完成(可能需要以 root 或 sudo 权限):
● 要在 RedHat、Fedora 和 CentOS 上安装 SciPy,请在命令行中运行以下指令:
$> yum install python-scipy
● 要在 Mandriva 上安装 SciPy,请运行此命令行指令:
$> urpmi python-scipy
● 要在 Gentoo 上安装 SciPy,请运行以下命令行指令:
$> sudo emerge scipy
● 在 Debian 或 Ubuntu 上,我们需要键入这条指令:
$> sudo apt-get install python-scipy
第二步。在 Mac OS X 上安装 SciPy: 需要使用苹果开发者工具(XCode),因为它包含 BLAS 和 LAPACK 库。
您可以在 App Store 或 Mac 附带的安装 DVD 中找到该工具;也可以从苹果开发者连接网站 https://developer.apple.com/xcode/ 获取最新版本。
确保包括所有可选软件包在内的所有内容都已安装。你可能已经为 NumPy 安装了 Fortran 编译器。gfortran 的二进制文件可在 http://r.research.att.com/tools/ 上找到。
第三步 使用 easy_install 或 pip 安装 SciPy: 你可以使用这两个命令中的任何一个安装 SciPy(是否需要 sudo 取决于权限):
$> [sudo] pip install scipy
$> [sudo] easy_install scipy
提示:我们以这种格式编写上述命令是为了告诉你,sudo 是可选的,你可能不需要它,或者没有它你可能无法运行该命令。
第四步. 在 Windows 上安装: 如果您已经安装了 Python,首选的方法是下载并使用二进制发行版。或者,你也可以安装 Anaconda 或 Enthought Python 发行版,其中包含其他科学 Python 软件包。
第五步 检查安装: 用以下代码检查 SciPy 的安装情况:
import scipy
print(scipy.__version__)
print(scipy.__file__)
这将打印出正确的 SciPy 版本。
你现在需要知道发生了什么?
大多数软件包管理器都会为您处理依赖关系(如果有的话)。不过,在某些情况下,你需要手动安装它们。这超出了本书的范围。
参考资料
如果遇到问题,可以通过以下方式寻求帮助:
● IRC 频道 freenode 中的 #scipy
● SciPy 邮件列表 http://www.scipy.org/scipylib/mailing-lists.html
安装 PIL
PIL 是 Python 图像库,是本章图像处理配方的先决条件。如果你愿意,可以安装 Pillow,它是 PIL 的一个分支。有些人更喜欢 Pillow API,但我们不会在本系列中介绍它的安装。
分三步进行,让我们来看看如何操作。
让我们看看如何安装 PIL:
首先, 我们先在 Windows 上安装 PIL:
使用 PIL 网站 http://www.pythonware.com/products/pil/ 上的 Windows 可执行文件安装 PIL。
第二, 如果我们想在 Debian 或 Ubuntu 上安装:
在 Debian 或 Ubuntu 上,使用以下命令安装 PIL:
$> sudo apt-get install python-imaging
第三步 使用 ( easy_install ) 或 ( pip ) 安装: 在编写本书时,Red Hat、Fedora 和 CentOS 的软件包管理器似乎并不直接支持 PIL。因此,如果你使用的是这些 Linux 发行版之一,请按照此步骤操作。
使用以下命令之一进行安装:
$> easy_install PIL
$> sudo pip install PIL
参考资料
有关 Pillow(PIL 的分支)的说明,请访问 http://pillow.readthedocs.org/en/latest/installation.html。