## 9.2 NumPy 简介

> 原文：[Introduction to NumPy](https://nbviewer.jupyter.org/github/donnemartin/data-science-ipython-notebooks/blob/master/numpy/02.00-Introduction-to-NumPy.ipynb)
> 
> 译者：[飞龙](https://github.com/wizardforcel)
> 
> 协议：[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/)
> 
> 本节是[《Python 数据科学手册》](https://github.com/jakevdp/PythonDataScienceHandbook)（Python Data Science Handbook）的摘录。

本章以及第三章概述了在 Python 中有效加载，存储和操作内存数据的技术。

主题非常广泛：数据集可能来源于广泛的来源和各种格式，包括文档集合，图像集合，声音片段集合，数值测量集合或几乎任何其他内容。尽管存在这种明显的异质性，但它将帮助我们从根本上将所有数据视为数字数组。

例如，图像 - 特别是数字图像 - 可以看做简单的二维数字数组，表示整个区域的像素亮度。声音片段可以看做是强度与时间的一维数组。文本可以以各种方式转换为数字表示，可能是表示某些单词或单词对的频率的二元数字。

无论数据是什么，使其可分析的第一步是将它们转换为数字数组（稍后我们将在特征工程中讨论此过程的一些具体示例）。因此，数值数组的有效存储和操作，对于数据科学的过程来说绝对是基础。

我们现在来看看 Python 用于处理这种数值数组的专用工具：NumPy 包和 Pandas 包（在第三章中讨论）。

本章将详细介绍 NumPy。 NumPy（Numerical Python 的缩写）提供了一个有效的接口，来存储和操作密集数据缓冲区。在某些方面，NumPy 数组类似于 Python 的内置``list``类型，但随着数组的大小增大，NumPy 数组提供了更高效的存储和数据操作。

NumPy 数组构成了 Python 中几乎整个数据科学工具生态系统的核心，因此无论你对数据科学的哪些方面感兴趣，学习有效使用 NumPy 都是值得的。

如果你按照前言中列出的建议并安装了 Anaconda 技术栈，那么你已经安装了 NumPy 并准备好了。如果你更喜欢自己动手，可以访问 <http://www.numpy.org/> 并按照其中的安装说明进行操作。

完成后，你可以导入 NumPy 并仔细检查版本：


```py
import numpy
numpy.__version__

# '1.11.1'
```

对于这里讨论的软件包，我建议使用 NumPy 1.8 或更高版本。

照惯例，你会发现 SciPy/PyData 世界中的大多数人都会使用``np``作为别名来导入 NumPy：

```py
import numpy as np
```

在本章以及本书的其余部分中，你会发现这是我们导入和使用 NumPy 的方式。

### 关于内置文档的提醒

在阅读本章时，不要忘记 IPython 使你能够快速浏览包的内容（通过使用制表符补全功能），以及各种函数的文档（使用``?``字符 - 请参阅 IPython 中的帮助和文档）。

例如，要显示`numpy`命名空间的所有内容，可以键入：

```ipython
In [3]: np.<TAB>
```

要显示 NumPy 的内置文档，你可以使用：

```ipython
In [4]: np?
```

更详细的文档以及教程和其他资源，请访问 <http://www.numpy.org>。