Python数据整理
上QQ阅读APP看书,第一时间看更新

3.2 NumPy数组操作

读取和操作数组,是数据科学家在日常工作中最重要的,也是最经常遇到的任务。这些数组可以是一维列表,也可以是多维表格或者是数字矩阵。

数组可以由整数、浮点数、布尔值、字符串甚至混合类型填充。但是,在大多数情况下,数字数据类型占主导地位。

一些需要处理数字数组的示例场景如下所示:

·读取电话号码和邮政编码列表并提取特定类型;

·建立随机数矩阵,以运行某些统计过程的蒙特卡罗模拟;

·对含有大量财务和交易数据的销售数字表进行缩放和规范化;

·从一个大的原始数据表中创建一个较小的关键描述性统计数据表(例如,平均值、中值、最小/最大范围、方差、四分位距);

·每日读取和分析一维数组中的时间序列数据,如某个组织一年的股票价格,或者来自气象站的每日温度数据。

简而言之,数组和数字数据表无处不在。作为数据整理的专业人员,读取和处理数字数组能力的重要性不言而喻。在这方面,NumPy数组将是你需要了解的最重要的Python对象。

NumPy数组

NumPy和SciPy是Python的开源附加模块,用于提供在预编译、快速函数方面的常用的数学和数值工作。它们已经发展成为高度成熟的库,提供的功能达到甚至超过了普通商业软件,如MATLAB或Mathematica。

NumPy模块的主要优点之一是处理或创建一维或多维数组。这个高级数据结构/类处于NumPy包的核心,它是更多高级数据结构/类(例如我们将在本章稍作介绍的pandas和DataFrame)的基础模块。

NumPy数组与普通Python列表不同,因为Python列表可以被认为是简单的数组。NumPy数组用于向量化操作,即只需一行代码就可以处理大量数值数据。许多NumPy数组中的内置数学函数是用低级语言编写的,如C或Fortran,并用于真正的、快速执行的预编译。

说明

NumPy数组可为数值分析优化数据结构。这就是为什么它们对数据科学家如此重要的原因。