NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。 NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协作者共同开发,2005 年,Travis Oliphant 在 Numeric 中结合了另一个同性质的程序库 Numarray 的特色,并加入了其它扩展而开发了 NumPy。NumPy 为开放源代码并且由许多协作者共同维护开发。 NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:
一个强大的N维数组对象 ndarray广播功能函数整合 C/C++/Fortran 代码的工具线性代数、傅里叶变换、随机数生成等功能除了NumPy赋予Python的快速数组处理能力之外,NumPy的另一个主要用途是在算法和库之间作为数据传递的数据容器。对于数值数据,NumPy数组能够比Python内建数据结构更为高效地存储和操作数据。此外,用底层语言编写的库,例如用C或Fortran编写的库,可以在NumPy数组存储的数据上直接操作,而无须将数据复制到其他内存中后再操作。因此,许多Python的数值计算工具将NumPy数组作为基础数据结构,或与NumPy进行无缝互操作。
numpy.nan
表示空值nan = NaN = NAN 空值的产生只有np.nan()一种方法 import numpy as np print(NaN==NAN) #False print(NaN!=nan) #True np.isnan(np.nan) #True np.isnan(np.e) #False type(nan) #floatnumpy.inf
表示正无穷大Inf = inf = infty = Infinitynumpy.pi
表示圆周率Πnumpy.e
表示自然常数e常见数据类型 Python 原生的数据类型相对较少, bool、int、float、str等。这在不需要关心数据在计算机中表示的所有方式的应用中是方便的。然而,对于科学计算,通常需要更多的控制。为了加以区分 numpy 在这些类型名称末尾都加了“_”。
下表列举了常用 numpy 基本类型。 创建数据类型 numpy 的数值类型实际上是 dtype 对象的实例。
class dtype(object): def init(self, obj, align=False, copy=False): pass 每个内建类型都有一个唯一定义它的字符代码,如下: 数据类型信息 Python 的浮点数通常是64位浮点数,几乎等同于 np.float64。
NumPy和Python整数类型的行为在整数溢出方面存在显着差异,与 NumPy 不同,Python 的int 是灵活的。这意味着Python整数可以扩展以容纳任何整数并且不会溢出。
Machine limits for integer types. class iinfo(object): def __init__(self, int_type): pass def min(self): pass def max(self): pass Machine limits for floating point types. class finfo(object): def _init(self, dtype):