Numpy介绍

Numpy是Numerical Python的简写,是Python数值计算的基石。它提供多种数据结构、算法以及大部分涉及Python数值计算所需的接口。Numpy还包括其他内容:

  1. 快速、高效的多维数组对象ndarray
  2. 基于元素的数组计算或数组间数学操作函数
  3. 用于读写硬盘中基于数组的数据集的工具
  4. 线性代数操作、傅里叶变换以及随机数生成
  5. 成熟的C语言API、允许Python扩展和本地的C或C++代码访问Numpy的数据结构和计算设施。

除了Numpy赋予Python的快速数组处理能力之外,Numpy的另一个主要用途是在算法和库之间作为数据传递的数据容器。对于数值数据,Numpy数组能够比Python内建数据结构更为高效地存储和操作数据。此外,用底层语言编写的库,例如C或Fortran编写的库,可以在Numpy数组存储的数据上直接操作,而无需将数据复制到其他内存中后操作。因此,许多Python的数值计算工具将Numpy数组作为基础数据结构,或与Numpy进行无缝互操作。

Numpy基础知识

数组生成函数表

函数名描述
array将输入数据(可以是列表、元组、数组以及其他序列)转换为ndarray,如不显式指明数据类型,将自动推断;默认复制所有的输入数据
asarray将输入转换为ndarray,但如果输入已经是ndarray则不在复制
arangePython内建函数range的数组版,返回一个数组
ones根据给定形状和数据类型生成全1数组
ones_like根据所给的数组生成一个形状一样的全1数组
zeros根据给定形状和数据类型生成全0数组
zeros_like根据所给的数组生成一个形状一样的全0数组
empty根据给定形状生成一个没有初始化数值的空数组
empty_like根据所给数组生成一个形状一样但没有初始化数值的空数组
full根据给定的形状和数据类型生成指定数值的数组
full_like根据所给的数组生成一个形状一样但内容是指定数值的数组
eye, identity生成一个N*N特征矩阵(对角线位置都是1,其余位置是0)

Numpy数据类型表

类型类型代码描述
int8,uint8i1,u1有符号和无符号的8数位整数
int16,uint16i2,u2有符号和无符号的16数位整数
int32,uint32i4,u4有符号和无符号的32数位整数
int64,uint64i8,u8有符号和无符号的64数位整数
float16f2半精度浮点数
float32f4或f标准单精度浮点数;兼容C语言float
float64f8或d标准双精度浮点数;兼容C语言double和Python float
float128f16或g拓展精度浮点数
complex64,complex128,complex256c8,c16,c32分别基于32位、64位、128位浮点数的复数
bool布尔值,存储True或False
object0Python object类型
string_S修正的ASCII字符串类型,例如生成一个长度为10的字符串类型,使用“S10”
unicode_U修正的Unicode类型,生成一个长度为10的Unicode类型,使用“U10”

一元通用函数

函数名描述
abs、fabs逐元素地计算整数、浮点数或复数的绝对值
sqrt计算每个元素的平方根(arr ** 0.5相等)
square计算每个元素的平方(arr ** 2相等)
exp计算每个元素的自然指数值e^x
log、log10、log2、log1p分别对应:自然对数(e为底)、对数10为底、对数2为底、log(1+x)
sign计算每个元素的符号值:1(正数)、0(0)、-1(负数)
ceil计算每个元素的最高整数值(即大于等于给定数值的最小整数)
floor计算每个元素的最小整数值(即小于等于给定数值的最大整数)
rint将元素保留到整数位,并保持dtype
modf分别将数组的小数部分和整数部分按数组形式返回
isnan返回数组中的元素是否是一个NaN(不是一个数值),形式为布尔值数组
isfinite、isinf分别返回数组中的元素是否有限(非inf、非NaN),是否无限的,形式为布尔值数组
cos、cosh、sin、sinh、tan、tanh常规的双曲三角函数
arccos、arccosh、arcsin、arcsinh、arctan、arctanh反三角函数
logical_not对数组的元素按位取反(与~arr效果一致)

二元通用函数

函数名描述
add将数组的对应元素相加
subtract在第二个数组中,将第一个数组中包含的元素去除
multiply将数组的对应元素相乘
divide,floor_divide除或整除(放弃余数)
power将第二个数组的元素作为第一个数组对应元素的幂次方
maximum、fmax逐个元素计算最大值,fmax忽略NaN
minimum,fmin逐个元素计算最小值,fmin忽略NaN
mod将元素的求模计算(即求出发的余数)
copysign将第一个数组的符号值改为第二个数组的符号值
greater、greater_equal、less、less_equal、equal、not_equal将元素逐个的比较,返回布尔值数组(与数学操作符>、>=、<、<=、==、!=效果一致)
logical_and,logical_or,logical_xor进行逐个元素的逻辑操作(与逻辑操作符&、或、^效果一致)
最后修改:2020 年 01 月 25 日
如果觉得我的文章对你有用,请随意赞赏