NumPy是使用Python进行科学计算的基础软件包。除其他外,它包括:
功能强大的N维数组对象。精密广播功能函数。集成 C/C+和Fortran 代码的工具。强大的线性代数、傅立叶变换和随机数功能。
Numpy中文网:【https://www.numpy.org.cn/】
在使用python进行数据分析的时候,常常要面对不同类型的数据集,如文本,声音片段,图像数据集等。这些数据虽然存在明显的异构性,但是将所有数据简单地看作 数字数组非常有助于我们理解和处理数据。而numpy正是Python 中专门用来处理这些数值数组的工具
例如可以将图像(尤其是数字图像)简单地看作二维数字数组,这些数字数组代表各区 域的像素值;声音片段可以看作时间和强度的一维数组;文本也可以通过各种方式转换成 数值表示,一种可能的转换是用二进制数表示特定单词或单词对出现的频率。不管数据是 何种形式,第一步都是将这些数据转换成数值数组形式的可分析数据
在python中,列表是常用的数据结构。与其它语言不同的是,python由于其语言特殊的动态类型特性,所以可以很灵活的创建各种列表,甚至是异构列表(列表中包含多个数据类型)。
当然,拥有这种灵活性的同时,python不那么高效。
在python中,列表中的每一 项必须包含各自的类型信息、引用计数和其他信息;也就是说,每一项都是一个完整的 Python 对象。来看一个特殊的例子,如果列表中的所有变量都是同一类型的,那么很多信 息都会显得多余——将数据存储在固定类型的数组中应该会更高效。
而与灵活的列表不同,在numpy中固定类型的 NumPy 式数组缺乏这 种灵活性,但是能更有效地存储和操作数据。
由于numpy中只包含同一类型的值,所以我们要了解一下numpy中的数据类型,与python中为数不多的的数据类型不同,numpy包含了极多的数据类型
当构建一个数组时,可以用一个字符串参 数来指定数据类型:
np.zeros(10, dtype='int16')
或者用相关的 NumPy 对象来指定:
np.zeros(10, dtype=np.int16)