第2章 NumPy数组
在前面部分,我们已经安装了NumPy和几个关键Python程序库,并动手编写了一些代码。在本章中,我们将正式步入NumPy数组的世界,带领大家一起学习NumPy和数组的知识。阅读本章后,你会对NumPy数组及其相关函数有个基本了解。
本章涉及的主题如下所示。
- 数据类型。
- 数组类型。
- 类型转换。
- 创建数组。
- 索引。
- 花式索引。
- 切片(Slicing)。
- 处理数组的形状。
2.1 NumPy数组对象
NumPy中的多维数组称为ndarray
,它有两个组成部分。
- 数据本身。
- 描述数据的元数据。
在数组的处理过程中,原始信息不受影响,变化的只是元数据而已。
在之前的章节中,我们曾经用arange()
函数来生成数组。实际上,那是用来存放一组数值的一维数组,这里的ndarray
则可以具有一个以上的维度。
NumPy数组的优势
NumPy数组通常是由相同种类的元素组成的,即数组中的数据项的类型必须一致。NumPy数组元素类型一致的好处是:由于知道数组元素的类型相同,所以能轻松确定存储数组所需空间的大小。同时,NumPy数组还能够运用向量化运算来处理整个数组;而完成同样的任务,Python的列表则通常必须借助循环语句遍历列表,并对逐个元素进行相应的处理。此外,NumPy使用了优化过的C API,所以运算速度格外快。
NumPy数组的索引方法与Python类似,下标从0
开始。NumPy数组的数据类型由特殊的对象指定,本章后面的部分将对这些对象进行详细介绍。
今后,我们会经常利用arange()
子例程来建立数组,该函数取自本书附带的arrayattributes.py
文件。本章中的代码片断大都取自IPython会话。注意,IPython启动时会自动导入NumPy库。下面代码展示了如何获得数组的数据类型: ...
Get Python数据分析 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.