NumPy是Python的基础,更是数据科学的通用语言,而且与TensorFlow关系密切,所以我们把它列为第一章。
NumPy为何如此重要?实际上Python本身含有列表(list)和数组(array),但对于大数据来说,这些结构有很多不足。因列表的元素可以是任何对象,因此列表中所保存的是对象的指针。这样为了保存一个简单的[1,2,3],都需要有3个指针和3个整数对象。对于数值运算来说,这种结构显然比较浪费内存和CPU计算时间。至于array对象,它直接保存数值,和C语言的一维数组比较类似。但是由于它不支持多维,也没有各种运算函数,因此也不适合做数值运算。
NumPy(Numerical Python的简称)的诞生弥补了这些不足,它提供了两种基本的对象:ndarray(N-dimensional array object)和ufunc(universal function object)。ndarray是存储单一数据类型的多维数组,而ufunc则是能够对数组进行处理的函数。
NumPy的主要特点:
·ndarray,快速,节省空间的多维数组,提供数组化的算术运算和高级的广播功能。
·使用标准数学函数对整个数组的数据进行快速运算,而不需要编写循环。
·读取/写入磁盘上的阵列数据和操作存储器映像文件的工具。
·线性代数,随机数生成,以及傅里叶变换的能力。
·集成C、C++、Fortran代码的工具。
在使用NumPy之前,需要先导入该模块:
import numpy as np
本章主要内容如下:
·如何生成NumPy的ndarray的几种方式。
·如何存取元素。
·如何操作矩阵。
·如何合并或拆分数据。
·简介NumPy的通用函数。
·简介NumPy的广播机制。