虽然这一系列文章是关于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。