NumPy是一个运行速度非常快的数学库,主要用于数组计算,包含一个强大的 N 维数组对象ndarray、广播功能函数、整合C/C++/Fortran代码的工具和线性代数、傅里叶变换、随机数生成等功能。
NumPy的前身Numeric最早是由Jim Hugunin与其他协作者共同开发的,2005年Travis Oliphant在Numeric中结合了另一个同性质的程序库Numarray的特色,并加入其他扩展而开发了NumPy。NumPy为开放源代码,并由许多协作者共同维护开发。
NumPy是一个Python包。使用NumPy,开发人员可以执行以下操作:
(1)数组的算术和逻辑运算。
(2)傅里叶变换和用于图形操作的例程。
(3)与线性代数有关的操作,NumPy拥有线性代数和随机数生成的内置函数。
NumPy通常与SciPy(Scientific Python)和Matplotlib(绘图库)一起使用。这种组合广泛用于替代MATLAB,是一个流行的技术计算平台。NumPy是开源的,这是它一个额外的优势。
标准的Python可以使用list(列表)当作数组使用。由于list的元素可以是任何对象,因此list中所保存的是对象指针。例如,保存[1,2,3,4]需要有4个指针和4个整数对象,这样会导致计算效率降低。
Python还可以使用array模块的array对象作为数组。不同于列表,array对象可以直接保存数值,但是array对象不支持多维数组,并且不包含相关的函数,因此它也不适合做数值运算。
NumPy包克服了上面的不足,提供了两种基本对象:ndarray( N 维数组)和func(通用函数)。ndarray数组用来存放相同数据类型的多维数组,func是可以对数组进行运算处理的函数。
NumPy包使得Python处理多维数组的能力得到很大提升。虽然NumPy包和Scipy包在功能上有一些重复,但NumPy包提供定义数据的功能,Scipy包通过相关的科学计算工具包使得Python具备强大的功能。
要使用NumPy包必须先将其引入,语句为:
from numpy import *
或者
import numpy as np