Numpy-API速查表

  |  

摘要: 本文记录 Numpy 的 API,使用时关键词搜索即可

【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】
我的网站:潮汐朝夕的生活实验室
我的公众号:算法题刷刷
我的知乎:潮汐朝夕
我的github:FennelDumplings
我的leetcode:FennelDumplings


参考资料:

文档: Numpy API Reference


本文的 pdf 版本:Numpy-API速查表

思维导图如下:


$1. 创建数组

$1.1 用1和0创建数组

函数 说明
empty(shape[, dtype, order]) 返回给定形状和类型的新数组,而不初始化条目。
empty_like(a[, dtype, order, subok]) 返回与给定数组形状和类型相同的新数组。
eye(N[, M, k, dtype, order]) 返回对角线上为1、别处为0的二维数组。
identity(n[, dtype]) 返回标识数组。
ones(shape[, dtype, order]) 返回给定形状和类型的新数组,其中填充了一个。
ones_like(a[, dtype, order, subok]) 返回与给定数组形状和类型相同的数组。
zeros(shape[, dtype, order]) 返回给定形状和类型的新数组,用零填充。
zeros_like(a[, dtype, order, subok]) 返回与给定数组形状和类型相同的零数组。
full(shape, fill_value[, dtype, order]) 返回给定形状和类型的新数组,用 fill_value 填充。
full_like(a, fill_value[, dtype, order, subok]) 返回与给定数组形状和类型相同的完整数组。

$1.2 根据现有数据创建数组

函数 说明
array(object[, dtype, copy, order, subok, ndmin]) 创建一个数组。
asarray(a[, dtype, order]) 将输入转换为数组。
asanyarray(a[, dtype, order]) 将输入转换为ndarray,但将ndarray子类传递到。
ascontiguousarray(a[, dtype]) 返回内存中的连续数组( C顺序)。
asmatrix(data[, dtype]) 将输入解释为矩阵。
copy(a[, order]) 返回给定对象的数组副本。
frombuffer(buffer[, dtype, count, offset]) 将缓冲区解释为一维数组。
fromfile(file[, dtype, count, sep]) 从文本或二进制文件中的数据构造数组。
fromfunction(function, shape, **kwargs) 通过在每个坐标上执行函数来构造数组。
fromiter(iterable, dtype[, count]) 从可迭代对象创建新的一维数组。
fromstring(string[, dtype, count, sep]) 从字符串中的文本数据初始化的新一维数组。
loadtxt(fname[, dtype, comments, delimiter, …]) 从文本文件加载数据。

$1.3 创建记录数组(np.rec)

这里 numpy.recnumpy.core.records 的首选别名。

函数 说明
core.records.array(obj[, dtype, shape, …]) 从各种各样的对象构造记录数组。
core.records.fromarrays(arrayList[, dtype, …]) 从(平面)数组列表中创建记录数组
core.records.fromrecords(recList[, dtype, …]) 从文本形式的记录列表中创建重新排列
core.records.fromstring(datastring[, dtype, …]) 从字符串中包含的二进制数据创建(只读)记录数组
core.records.fromfile(fd[, dtype, shape, …]) 从二进制文件数据创建数组

$1.4 创建字符数组(np.char)

这里 numpy.char 是 numpy.core.defcharary 的首选别名。

函数 说明
core.defchararray.array(obj[, itemsize, …]) 创建一个字符数组。
core.defchararray.asarray(obj[, itemsize, …]) 将输入转换为字符数组,仅在必要时复制数据。

$1.5 根据数值范围创建数组

函数 说明
arange([start,] stop[, step,][, dtype]) 在给定间隔内返回均匀间隔的值。
linspace(start, stop[, num, endpoint, …]) 在指定的时间间隔内返回均匀间隔的数字。
logspace(start, stop[, num, endpoint, base, …]) 返回对数刻度上均匀间隔的数字。
geomspace(start, stop[, num, endpoint, dtype]) 返回对数刻度上均匀间隔的数字(几何级数)。
meshgrid(xi, *kwargs) 从坐标向量返回坐标矩阵。
mgrid nd_grid 实例,返回密集的多维“网格”。
ogrid 返回开放多维“网格”的 nd_grid 实例。

$1.6 创建特殊矩阵

函数 说明
diag(v[, k]) 提取对角线或构造对角线数组。
diagflat(v[, k]) 以展平的输入为对角线创建二维数组。
tri(N[, M, k, dtype]) 一个数组,在给定对角线上和下方有一个,在其他地方有零。
tril(m[, k]) 数组的下三角形。
triu(m[, k]) 数组的上三角形。
vander(x[, N, increasing]) 生成范德蒙矩阵。

$1.7 创建矩阵

函数 说明
mat(data[, dtype]) 将输入解释为矩阵。
bmat(obj[, ldict, gdict]) 从字符串、嵌套序列或数组构建矩阵对象。

$2 数组操作

$2.1 复制

函数 说明
copyto(dst, src[, casting, where]) 将值从一个阵列复制到另一个阵列,根据需要进行广播。

$2.2 改变形状

函数 说明
reshape(a, newshape[, order]) 在不更改数组数据的情况下为数组赋予新形状。
ravel(a[, order]) 返回连续的扁平数组。
ndarray.flat 数组上的一维迭代器。
ndarray.flatten([order]) 返回折叠到一维中的数组副本。

$2.3 置换坐标轴

函数 说明
moveaxis(a, source, destination) 将数组的轴移动到新位置。
rollaxis(a, axis[, start]) 向后滚动指定的轴,直到它位于给定位置。
swapaxes(a, axis1, axis2) 交换数组的两个轴。
ndarray.T 与 self.indim < 2 时返回 self() 相同。
transpose(a[, axes]) 置换数组的维度。

$2.4 改变维数

函数 说明
atleast_1d(*arys) 将输入转换为至少具有一维的数组。
atleast_2d(*arys) 将输入视为至少具有两个维度的数组。
atleast_3d(*arys) 将输入视为至少具有三维的数组。
broadcast 制作模拟广播的对象。
broadcast_to(array, shape[, subok]) 将数组广播到新形状。
broadcast_arrays(args, *kwargs) 相互广播任意数量的阵列。
expand_dims(a, axis) 展开数组的形状。
squeeze(a[, axis]) 从数组形状中删除一维条目。

$2.5 改变数组种类

函数 说明
asarray(a[, dtype, order]) 将输入转换为数组。
asanyarray(a[, dtype, order]) 将输入转换为ndarray,但将ndarray子类传递到。
asmatrix(data[, dtype]) 将输入解释为矩阵。
asfarray(a[, dtype]) 返回转换为浮点型的数组。
asfortranarray(a[, dtype]) 在内存中返回按Fortran顺序排列的数组。
ascontiguousarray(a[, dtype]) 返回内存中的连续数组( C顺序)。
asarray_chkfinite(a[, dtype, order]) 将输入转换为数组,检查NaNs或Infs。
asscalar(a) 将大小为1的数组转换为其标量等效数组。
require(a[, dtype, requirements]) 返回满足要求的所提供类型的ndarray。

$2.6 连接数组

函数 说明
concatenate((a1, a2, …)[, axis, out]) 沿现有轴连接阵列序列。
stack(arrays[, axis, out]) 沿着新轴连接一系列数组。
column_stack(tup) 将一维数组作为列堆叠成二维数组。
dstack(tup) 按顺序深度(沿第三轴)堆叠阵列。
hstack(tup) 水平(按列)按顺序堆叠数组。
vstack(tup) 垂直(按行)顺序堆叠阵列。
block(arrays) 从嵌套的块列表中组装nd数组。

$2.7 分裂数组

函数 说明
split(ary, indices_or_sections[, axis]) 将阵列分割成多个子阵列。
array_split(ary, indices_or_sections[, axis]) 将阵列分割成多个子阵列。
dsplit(ary, indices_or_sections) 沿第三轴(深度)将阵列分割成多个子阵列。
hsplit(ary, indices_or_sections) 水平(按列)将阵列拆分为多个子阵列。
vsplit(ary, indices_or_sections) 将阵列垂直(按行)拆分为多个子阵列。

$2.8 平铺数组

函数 说明
tile(A, reps) 通过重复代表给定的次数来构造数组
repeat(a, repeats[, axis]) 重复数组的元素。

$2.9 添加和删除元素

函数 说明
delete(arr, obj[, axis]) 返回删除了沿轴的子阵列的新阵列。
insert(arr, obj, values[, axis]) 在给定索引之前沿给定轴插入值。
append(arr, values[, axis]) 将值追加到数组的末尾。
resize(a, new_shape) 返回具有指定形状的新数组。
trim_zeros(filt[, trim]) 从一维数组或序列中修剪前导零和/或尾随零。
unique(ar[, return_index, return_inverse, …]) 查找数组的唯一元素。

2.10 重新排列元素

函数 说明
flip(m, axis) 沿给定轴反转数组中元素的顺序。
fliplr(m) 向左/向右翻转阵列。
flipud(m) 沿上下方向翻转阵列。
reshape(a, newshape[, order]) 在不更改数组数据的情况下为数组赋予新形状。
roll(a, shift[, axis]) 沿给定轴滚动阵列元素。
rot90(m[, k, axes]) 在轴指定的平面中将阵列旋转90度。

$ 3. 二进制操作

$3.1 元素位操作

函数 说明
bitwise_and(x1, x2, /[, out, where, …]) 逐位计算两个数组的“与”。
bitwise_or(x1, x2, /[, out, where, casting, …]) 逐位计算两个数组的OR。
bitwise_xor(x1, x2, /[, out, where, …]) 逐元素计算两个数组的位异或。
invert(x, /[, out, where, casting, order, …]) 逐位或逐位不逐元素计算反演。
left_shift(x1, x2, /[, out, where, casting, …]) 将整数的位向左移动。
right_shift(x1, x2, /[, out, where, …]) 将整数的位向右移动。

$3.2 字节打包

函数 说明
packbits(myarray[, axis]) 将二进制值数组的元素打包成uint 8数组中的位。
unpackbits(myarray[, axis]) 将uint 8数组的元素解包为二进制值输出数组。

$3.3 输出格式

函数 说明
binary_repr(num[, width]) 将输入数字的二进制表示形式返回为字符串。

$4. 操作字符串

$4.1 字符串操作

函数 说明
add(x1, x2) 返回字符串或unicode两个数组的逐元素字符串连接。
multiply(a, i) 返回( a * I ),即字符串多重连接,按元素排序。
mod(a, values) 返回( a % I ),即Python 2.6之前的字符串格式( iterpolation ),对于字符串或unicode这样的一对array_likes,逐元素返回。
capitalize(a) 返回一个副本,其中每个元素的第一个字符都是大写的。
center(a, width[, fillchar]) 传回的复本,其元素以长度宽度字串为中心。
decode(a[, encoding, errors]) 逐元素调用字符串解码。
encode(a[, encoding, errors]) 调用字符串按元素编码。
join(sep, seq) 返回一个字符串,它是序列seq中字符串的串联。
ljust(a, width[, fillchar]) 返回一个数组,数组中的元素在长度为宽度的字符串中左对齐。
lower(a) 返回元素转换为小写的数组。
lstrip(a[, chars]) 对于中的每个元素,返回删除前导字符的副本。
partition(a, sep) 9月份左右,将每个元素分区
replace(a, old, new[, count]) 对于中的每个元素,返回字符串的副本,所有出现的子字符串旧的都替换为新的。
rjust(a, width[, fillchar]) 返回一个数组,数组中的元素在长度为宽度的字符串中右对齐。
rpartition(a, sep) 分隔(拆分)最右边分隔符周围的每个元素。
rsplit(a[, sep, maxsplit]) 对于中的每个元素,使用sep作为分隔符字符串返回字符串中的单词列表。
rstrip(a[, chars]) 对于中的每个元素,返回一个删除了尾随字符的副本。
split(a[, sep, maxsplit]) 对于中的每个元素,使用sep作为分隔符字符串返回字符串中的单词列表。
splitlines(a[, keepends]) 对于中的每个元素,返回元素中的线条列表,在线条边界处断开。
strip(a[, chars]) 对于a中的每个元素,返回一个删除了前导和尾随字符的副本。
swapcase(a) 以元素方式返回字符串副本,大写字符转换为小写字符,反之亦然。
title(a) 返回字符串或unicode的元素标题大小写版本。
translate(a, table[, deletechars]) 对于中的每个元素,返回字符串的副本,在该副本中,可选参数deletechars中出现的所有字符都被删除,其余字符已通过给定的转换表映射。
upper(a) 返回元素转换为大写的数组。
zfill(a, width) 返回左填充零的数字字符串

$4.2 比较

与标准numpy比较运算符不同的是,char模块中的运算符在执行比较之前会剥离尾随空白字符。

函数 说明
equal(x1, x2) 按元素返回( x1 = = x2 )。
not_equal(x1, x2) 返回( x1!= x2 )元素方式。
greater_equal(x1, x2) 逐元素返回( x1 > = x2 )。
less_equal(x1, x2) 逐元素返回( x1 < = x2 )。
greater(x1, x2) 逐元素返回( x1 > x2 )。
less(x1, x2) 逐元素返回( x1 < x2 )。

$4.3 字符串信息

函数 说明
count(a, sub[, start, end]) 返回一个数组,其中子字符串sub在“[开始,结束”范围内不重叠的出现次数。
find(a, sub[, start, end]) 对于每个元素,返回字符串中找到子字符串sub的最低索引。
index(a, sub[, start, end]) 如查找,但在未找到子字符串时引发值错误。
isalpha(a) 如果字符串中的所有字符都是字母,并且至少有一个字符,则返回true,否则返回false。
isdecimal(a) 对于每个元素,如果元素中只有十进制字符,则返回True。
isdigit(a) 如果字符串中的所有字符都是数字,并且至少有一个字符,则返回true,否则返回false。
islower(a) 如果字符串中的所有大小写字符都是小写的,并且至少有一个大小写字符,则返回true,否则返回false。
isnumeric(a) 对于每个元素,如果元素中只有数字字符,则返回True。
isspace(a) 如果字符串中只有空白字符,并且至少有一个字符,则返回true,否则返回false。
istitle(a) 如果元素是标题大小写字符串,并且至少有一个字符,则返回true,否则返回false。
isupper(a) 如果字符串中的所有大小写字符都是大写的,并且至少有一个字符,则返回true,否则返回false。
rfind(a, sub[, start, end]) 对于a中的每个元素,返回字符串中找到substring sub的最高索引,以便sub包含在[ start,end ]中。
rindex(a, sub[, start, end]) 类似rfind,但在未找到子字符串子字符串时引发值错误。
startswith(a, prefix[, start, end]) 返回一个布尔数组,该数组为True,其中a中的字符串元素以前缀开头,否则为False。

$4.4 便捷视图

函数 说明
chararray(shape[, itemsize, unicode, …]) 提供字符串和unicode值数组的便捷视图。

$5 日期支持

$5.1 日期时间支持函数

函数 说明
datetime_as_string(arr[, unit, timezone, …]) 将日期时间数组转换为字符串数组。
datetime_data(dtype, /) 获取有关日期或时间类型步长的信息。

$5.2 营业日功能

函数 说明
busdaycalendar([weekmask, holidays]) 一个工作日日历对象,有效存储定义工作日系列功能的有效天数的信息。
is_busday(dates[, weekmask, holidays, …]) 计算给定日期中哪些是有效天数,哪些不是。
busday_offset(dates, offsets[, roll, …]) 首先根据滚动规则将日期调整为有效日期,然后将偏移应用于以有效日期计算的给定日期。
busday_count(begindates, enddates[, …]) 计算开始日期和结束日期之间的有效天数,不包括结束日期。

$6 数据类型

$6.1 数据类型检查

函数 说明
can_cast(from_, to[, casting]) 如果可以根据转换规则在数据类型之间进行转换,则返回True。
promote_types(type1, type2) 返回具有最小大小和最小标量类型的数据类型,类型1和类型2都可以安全地转换到该数据类型。
min_scalar_type(a) 对于标量a,返回大小最小且标量种类最小的数据类型,该数据类型可以保存其值。
result_type(*arrays_and_dtypes) 传回将NumPy型别升级规则套用至引数所产生的型别。
common_type(*arrays) 返回输入数组共有的标量类型。
obj2sctype(rep[, default]) 返回对象Python类型的标量dtype或NumPy等效项。

$6.2 创建数据类型

函数 说明
dtype(obj[, align, copy]) 创建数据类型对象。
format_parser(formats, names, titles[, …]) 类将格式、名称、标题描述转换为dtype。

$6.3 数据类型信息

函数 说明
finfo(dtype) 浮点类型的机器限制。
iinfo(type) 整数类型的机器限制。
MachAr([float_conv, int_conv, …]) 诊断机器参数。

6.4 数据类型测试

函数 说明
issctype(rep) 确定给定对象是否表示标量数据类型。
issubdtype(arg1, arg2) 如果第一个参数是类型层次结构中较低/相等的类型代码,则返回True。
issubsctype(arg1, arg2) 确定第一个参数是否是第二个参数的子类。
issubclass_(arg1, arg2) 确定一个类是否是第二类的子类。
find_common_type(array_types, scalar_types) 按照标准强制规则确定通用类型。

$6.5 其它

函数 说明
typename(char) 返回给定数据类型代码的描述。
sctype2char(sctype) 返回标量dtype的字符串表示形式。
mintypecode(typechars[, typeset, default]) 返回给定类型可以安全转换到的最小大小类型的字符。

$7 可选的Scipy加速from numpy.dual import...

scipy可以被构建为使用加速库或其他改进库来实现FFTs、线性代数和特殊函数。

$7.1 线性代数

函数 说明
cholesky(a) 乔利斯基分解。
det(a) 计算数组的行列式。
eig(a) 计算方阵的特征值和右特征向量。
eigh(a[, UPLO]) 返回埃尔米特矩阵或对称矩阵的特征值和特征向量。
eigvals(a) 计算一般矩阵的特征值。
eigvalsh(a[, UPLO]) 计算埃尔米特矩阵或实对称矩阵的特征值。
inv(a) 计算矩阵的(乘法)逆。
lstsq(a, b[, rcond]) 将最小二乘解返回线性矩阵方程。
norm(x[, ord, axis, keepdims]) 矩阵或向量范数。
pinv(a[, rcond]) 计算矩阵的(摩尔-彭罗斯)伪逆。
solve(a, b) 求解线性矩阵方程或线性标量方程组。
svd(a[, full_matrices, compute_uv]) 奇异值分解。

$7.2 快速傅里叶变换

函数 说明
fft(a[, n, axis, norm]) 计算一维离散傅立叶变换。
fft2(a[, s, axes, norm]) 计算二维离散傅立叶变换
fftn(a[, s, axes, norm]) 计算N维离散傅立叶变换。
ifft(a[, n, axis, norm]) 计算一维离散傅立叶逆变换。
ifft2(a[, s, axes, norm]) 计算二维离散傅立叶逆变换。
ifftn(a[, s, axes, norm]) 计算N维离散傅立叶逆变换。

$7.3 特殊函数

函数 说明
i0(x) 第一类修正贝塞尔函数,0阶。

$8 浮点错误处理

函数 说明
seterr([all, divide, over, under, invalid]) 设置浮点错误的处理方式。
geterr() 获取当前处理浮点错误的方式。
seterrcall(func) 设置浮点错误回调函数或日志对象。
geterrcall() 返回用于浮点错误的当前回调函数。
errstate(**kwargs) 浮点错误处理的上下文管理器。
seterrobj(errobj) 设置定义浮点错误处理的对象。
geterrobj() 返回定义浮点错误处理的当前对象。

$9 离散傅里叶变换from numpy.fft import...

$9.1 标准快速傅立叶变换

函数 说明
fft(a[, n, axis, norm]) 计算一维离散傅立叶变换。
ifft(a[, n, axis, norm]) 计算一维离散傅立叶逆变换。
fft2(a[, s, axes, norm]) 计算二维离散傅立叶变换
ifft2(a[, s, axes, norm]) 计算二维离散傅立叶逆变换。
fftn(a[, s, axes, norm]) 计算N维离散傅立叶变换。
ifftn(a[, s, axes, norm]) 计算N维离散傅立叶逆变换。

$9.2 实FFTs

函数 说明
rfft(a[, n, axis, norm]) 计算真实输入的一维离散傅立叶变换。
irfft(a[, n, axis, norm]) 计算实际输入的n点DFT的倒数。
rfft2(a[, s, axes, norm]) 计算真实阵列的二维FFT。
irfft2(a[, s, axes, norm]) 计算真实阵列的二维逆FFT。
rfftn(a[, s, axes, norm]) 计算真实输入的N维离散傅立叶变换。
irfftn(a[, s, axes, norm]) 计算实际输入的N维FFT的倒数。

$9.3 埃尔米特快速傅立叶变换

函数 说明
hfft(a[, n, axis, norm]) 计算具有厄米对称的信号的FFT,即实谱。
ihfft(a[, n, axis, norm]) 计算具有厄米对称的信号的逆FFT。

$9.4 其它

函数 说明
fftfreq(n[, d]) 返回离散傅立叶变换采样频率。
rfftfreq(n[, d]) 返回离散傅立叶变换采样频率(用于rfft、irfft )。
fftshift(x[, axes]) 将零频率分量移动到频谱中心。
ifftshift(x[, axes]) fftshift反向操作。

$10 财务

函数 说明
fv(rate, nper, pmt, pv[, when]) 计算未来值。
pv(rate, nper, pmt[, fv, when]) 计算现值。
npv(rate, values) 返回现金流序列的净现值。
pmt(rate, nper, pv[, fv, when]) 根据贷款本金加利息计算付款。
ppmt(rate, per, nper, pv[, fv, when]) 根据贷款本金计算付款。
ipmt(rate, per, nper, pv[, fv, when]) 计算付款的利息部分。
irr(values) 返回内部收益率( IRR )。
mirr(values, finance_rate, reinvest_rate) 修正内部收益率。
nper(rate, pmt, pv[, fv, when]) 计算定期付款的数量。
rate(nper, pmt, pv, fv[, when, guess, tol, …]) 计算每期利率。

$11 功能程序设计

函数 说明
apply_along_axis(func1d, axis, arr, *args, …) 沿给定轴将函数应用于一维切片。
apply_over_axes(func, a, axes) 在多个轴上重复应用一个函数。
vectorize(pyfunc[, otypes, doc, excluded, …]) 广义函数类。
frompyfunc(func, nin, nout) 获取任意Python函数并返回NumPy ufunc。
piecewise(x, condlist, funclist, args, *kw) 评估分段定义的函数。

$12 索引

$12.1 生成索引数组

函数 说明
_ 将切片对象沿第二轴平移为串联。
r_ 将切片对象沿第一轴平移为串联。
s_ 建立数组索引元组的更好方法。
nonzero(a) 返回非零元素的索引。
where(condition, [x, y]) 根据条件,返回x或y中的元素。
indices(dimensions[, dtype]) 返回表示网格索引的数组。
ix_(*args) 从多个序列构建开放网格。
ogrid 返回开放多维“网格”的 nd_grid 实例。
ravel_multi_index(multi_index, dims[, mode, …]) 将索引数组元组转换为平面索引数组,将边界模式应用于多索引。
unravel_index(indices, dims[, order]) 将平面索引或平面索引数组转换为坐标数组元组。
diag_indices(n[, ndim]) 返回索引以访问数组的主对角线。
diag_indices_from(arr) 返回索引以访问n维数组的主对角线。
mask_indices(n, mask_func[, k]) 给定掩蔽函数,返回访问 (n,n) 个数组的索引。
tril_indices(n[, k, m]) 返回 (n,m) 数组下三角形的索引。
tril_indices_from(arr[, k]) 返回arr的下三角形的索引。
triu_indices(n[, k, m]) 返回 (n,m) 数组上三角形的索引。
triu_indices_from(arr[, k]) 返回arr上三角形的索引。

$12.2 类似索引的操作

函数 说明
take(a, indices[, axis, out, mode]) 沿轴从数组中提取元素。
choose(a, choices[, out, mode]) 从索引数组和一组可供选择的数组构造一个数组。
compress(condition, a[, axis, out]) 沿给定轴返回阵列的选定切片。
diag(v[, k]) 提取对角线或构造对角线数组。
diagonal(a[, offset, axis1, axis2]) 返回指定的对角线。
select(condlist, choicelist[, default]) 根据条件返回从choicelist中的元素中提取的数组。
lib.stride_tricks.as_strided(x[, shape, …]) 以给定的形状和步幅创建阵列视图。

$12.3 将数据插入数组

函数 说明
place(arr, mask, vals) 根据条件值和输入值更改数组的元素。
put(a, ind, v[, mode]) 用给定值替换数组的指定元素。
putmask(a, mask, values) 根据条件值和输入值更改数组的元素。
fill_diagonal(a, val[, wrap]) 填充给定维度数组的主对角线。

$12.4 迭代数组

函数 说明
nditer 高效的多维迭代器对象对数组进行迭代。
ndenumerate(arr) 多维索引迭代器。
ndindex(*shape) 索引数组的N维迭代器对象。
flatiter 要在数组上迭代的平面迭代器对象。
lib.Arrayterator(var[, buf_size]) 大数组缓冲迭代器。

$13 输入输出

$13.1 NumPy二进制文件( NPY,NPZ )

函数 说明
load(file[, mmap_mode, allow_pickle, …]) 加载数组
save(file, arr[, allow_pickle, fix_imports]) 将数组保存到 NumPy 中的二进制文件中。npy格式。
savez(file, args, *kwds) 将几个阵列保存到未压缩的单个文件中。npz格式。
savez_compressed(file, args, *kwds) 将几个数组压缩保存到单个文件中。npz格式。

$13.2 文本文件

函数 说明
loadtxt(fname[, dtype, comments, delimiter, …]) 从文本文件加载数据。
savetxt(fname, X[, fmt, delimiter, newline, …]) 将数组保存到文本文件中。
genfromtxt(fname[, dtype, comments, …]) 从文本文件加载数据,缺失值按指定处理。
fromregex(file, regexp, dtype[, encoding]) 使用正则表达式解析从文本文件构造数组。
fromstring(string[, dtype, count, sep]) 从字符串中的文本数据初始化的新一维数组。
ndarray.tofile(fid[, sep, format]) 将数组以文本或二进制形式写入文件(默认)。
ndarray.tolist() 将数组作为(可能嵌套的)列表返回。

$13.3 原始二进制文件

函数 说明
fromfile(file[, dtype, count, sep]) 从文本或二进制文件中的数据构造数组。
ndarray.tofile(fid[, sep, format]) 将数组以文本或二进制形式写入文件(默认)。

$13.4 字符串格式

函数 说明
array2string(a[, max_line_width, precision, …]) 返回数组的字符串表示形式。
array_repr(arr[, max_line_width, precision, …]) 返回数组的字符串表示形式。
array_str(a[, max_line_width, precision, …]) 返回数组中数据的字符串表示形式。
format_float_positional(x[, precision, …]) 在位置符号中将浮点标量格式化为十进制字符串。
format_float_scientific(x[, precision, …]) 在科学记数法中将浮点标量格式化为十进制字符串。

$13.5 内存映射文件

函数 说明
memmap 创建存储到磁盘上二进制文件中存储的阵列的内存映射。

$13.6 文本格式选项

函数 说明
set_printoptions([precision, threshold, …]) 设置打印选项。
get_printoptions() 返回当前打印选项。
set_string_function(f[, repr]) 设置一个Python函数,用于漂亮的打印数组。

$13.7 基-n表示

函数 说明
binary_repr(num[, width]) 将输入数字的二进制表示形式返回为字符串。
base_repr(number[, base, padding]) 返回给定基本系统中数字的字符串表示形式。

$13.8 数据源

函数 说明
DataSource([destpath]) 一般资料来源档案(档案、http、FTP、…)。

$14. 线性代数from numpy.linalg import...

$14.1 矩阵和向量乘积

函数 说明
dot(a, b[, out]) 两个数组的点积。
linalg.multi_dot(arrays) 在单个函数调用中计算两个或多个数组的点积,同时自动选择最快的求值顺序。
vdot(a, b) 返回两个向量的点积。
inner(a, b) 两个数组的内积。
outer(a, b[, out]) 计算两个向量的外积。
matmul(a, b[, out]) 两个数组的矩阵乘积。
tensordot(a, b[, axes]) 计算阵列 >= 1 - d的沿指定轴的张量点积
einsum(subscripts, *operands[, out, dtype, …]) 评估操作数上的爱因斯坦求和约定。
einsum_path(subscripts, *operands[, optimize]) 通过考虑中间数组的创建来评估einsum表达式的最低成本收缩顺序。
linalg.matrix_power(M, n) 将方阵提高到(整数)幂n
kron(a, b) 两个数组的kronecker乘积。

$14.2 分解

函数 说明
linalg.cholesky(a) 乔利斯基分解。
linalg.qr(a[, mode]) 计算矩阵的QR分解。
linalg.svd(a[, full_matrices, compute_uv]) 奇异值分解。

$14.3 矩阵特征值

函数 说明
linalg.eig(a) 计算方阵的特征值和右特征向量。
linalg.eigh(a[, UPLO]) 返回埃尔米特矩阵或对称矩阵的特征值和特征向量。
linalg.eigvals(a) 计算一般矩阵的特征值。
linalg.eigvalsh(a[, UPLO]) 计算埃尔米特矩阵或实对称矩阵的特征值。

$14.4 其他数字

函数 说明
linalg.norm(x[, ord, axis, keepdims]) 矩阵或向量范数。
linalg.cond(x[, p]) 计算矩阵的条件数。
linalg.det(a) 计算数组的行列式。
linalg.matrix_rank(M[, tol, hermitian]) 用奇异值分解法求数组的矩阵秩
linalg.slogdet(a) 计算数组行列式的符号和(自然)对数。
trace(a[, offset, axis1, axis2, dtype, out]) 沿数组对角线返回总和。

$14.5 求解方程和逆矩阵

函数 说明
linalg.solve(a, b) 求解线性矩阵方程或线性标量方程组。
linalg.tensorsolve(a, b[, axes]) 求解张量方程
linalg.lstsq(a, b[, rcond]) 将最小二乘解返回线性矩阵方程。
linalg.inv(a) 计算矩阵的(乘法)逆。
linalg.pinv(a[, rcond]) 计算矩阵的(摩尔-彭罗斯)伪逆。
linalg.tensorinv(a[, ind]) 计算N维数组的“逆”。

$14.6 其它

函数 说明
linalg.LinAlgError linalg函数引发的异常派生对象。

$15 逻辑运算

$15.1 真值检验

函数 说明
all(a[, axis, out, keepdims]) 测试沿给定轴的所有数组元素是否评估为True。
any(a[, axis, out, keepdims]) 测试沿给定轴的任何数组元素是否评估为True。

$15.2 数组内容

函数 说明
isfinite(x, /[, out, where, casting, order, …]) 测试元素的有限性(不是无穷大或不是数字)。
isinf(x, /[, out, where, casting, order, …]) 以元素方式测试正无穷大或负无穷大。
isnan(x, /[, out, where, casting, order, …]) 对NaN进行逐个元素的测试,并将结果返回为布尔数组。
isnat(x, /[, out, where, casting, order, …]) 逐个元素测试NaT (不是时间),并将结果作为布尔数组返回。
isneginf(x[, out]) 逐个元素测试负无穷大,结果返回为bool数组。
isposinf(x[, out]) 测试元素为正无穷大,返回结果为bool数组。

$15.3 阵列式测试

函数 说明
iscomplex(x) 返回bool数组,如果输入元素复杂,则返回True。
iscomplexobj(x) 检查复数类型或复数数组。
isfortran(a) 如果数组是Fortran连续的但不是C连续的,则返回True。
isreal(x) 返回bool数组,如果输入元素为实,则返回True。
isrealobj(x) 如果x不是复杂类型或复数数组,则返回True。
isscalar(num) 如果num的类型是标量类型,则返回True。

$15.4 逻辑运算

函数 说明
logical_and(x1, x2, /[, out, where, …]) 逐元素计算x1和x2的真值。
logical_or(x1, x2, /[, out, where, casting, …]) 逐元素计算x1或x2的真值。
logical_not(x, /[, out, where, casting, …]) 不按x元素计算真值。
logical_xor(x1, x2, /[, out, where, …]) 逐元素计算x1 XOR x2的真值。

$15.5 比较

函数 说明
allclose(a, b[, rtol, atol, equal_nan]) 如果两个数组在容差内元素相等,则返回True。
isclose(a, b[, rtol, atol, equal_nan]) 返回一个布尔数组,其中两个数组在容差内按元素相等。
array_equal(a1, a2) 如果两个数组具有相同的形状和元素,则为true,否则为False。
array_equiv(a1, a2) 如果输入数组形状一致且所有元素相等,则返回True。
greater(x1, x2, /[, out, where, casting, …]) 逐元素返回( x1 > x2 )的真值。
greater_equal(x1, x2, /[, out, where, …]) 逐元素返回( x1 >= x2 )的真值。
less(x1, x2, /[, out, where, casting, …]) 逐元素返回( x1 < x2 )的真值。
less_equal(x1, x2, /[, out, where, casting, …]) 逐元素返回( x1 =< x2 )的真值。
equal(x1, x2, /[, out, where, casting, …]) 按元素返回( x1 == x2 )。
not_equal(x1, x2, /[, out, where, casting, …]) 返回( x1 != x2 )元素方式。

$16 矩阵库 from numpy.matlib import...

此模块包含numpy命名空间中的所有函数,只是返回的是matrix对象而不是ndarrays。

$16.1 在numpy命名空间并返回matrix函数

函数 说明
mat(data[, dtype]) 将输入解释为矩阵。
matrix(data[, dtype, copy]) 从类似阵列的物件或资料字串传回矩阵。
asmatrix(data[, dtype]) 将输入解释为矩阵。
bmat(obj[, ldict, gdict]) 从字符串、嵌套序列或数组构建矩阵对象。

$16.2 MATLAB中的替换函数

函数 说明
empty(shape[, dtype, order]) 返回给定形状和类型的新矩阵,而不初始化条目。
zeros(shape[, dtype, order]) 返回给定形状和类型的矩阵,用零填充。
ones(shape[, dtype, order]) 一矩阵。
eye(n[, M, k, dtype, order]) 返回对角线上为1、别处为0的矩阵。
identity(n[, dtype]) 返回给定大小的平方单位矩阵。
repmat(a, m, n) 重复阵列或矩阵MxN次。
rand(*args) 返回给定形状的随机值矩阵。
randn(*args) 返回带有“标准正态”分布数据的随机矩阵。

$17 随机数

$17.1 简单随机数据

函数 说明
rand(d0, d1, …, dn) 给定形状中的随机值。
randn(d0, d1, …, dn) 从“标准正态”分布中返回一个或多个样本。
randint(low[, high, size, dtype]) 返回从低(含)到高(含)的随机整数。
random_integers(low[, high, size]) NP . int类型的随机整数,介于低和高之间,包括在内。
random_sample([size]) 返回半开区间 [0.0, 1.0) 中的随机浮动。
random([size]) 返回半开区间 [0.0, 1.0) 中的随机浮动。
ranf([size]) 返回半开区间 [0.0, 1.0) 中的随机浮动。
sample([size]) 返回半开区间 [0.0, 1.0) 中的随机浮动。
choice(a[, size, replace, p]) 从给定的一维数组生成随机样本
bytes(length) 返回随机字节。

$17.2 排列

函数 说明
shuffle(x) 通过移动序列的内容就地修改序列。
permutation(x) 随机置换序列,或返回置换范围。

$17.3 分布

函数 说明
beta(a, b[, size]) 从Beta分布中抽取样本。
binomial(n, p[, size]) 从二项分布中抽取样本。
chisquare(df[, size]) 从卡方分布中抽取样本。
dirichlet(alpha[, size]) 从Dirichlet分布中抽取样本。
exponential([scale, size]) 从指数分布中抽取样本。
f(dfnum, dfden[, size]) 从F分布中抽取样本。
gamma(shape[, scale, size]) 从伽玛分布中抽取样本。
geometric(p[, size]) 从几何分布中抽取样本。
gumbel([loc, scale, size]) 从秋葵分布中抽取样本。
hypergeometric(ngood, nbad, nsample[, size]) 从超几何分布中提取样本。
laplace([loc, scale, size]) 从拉普拉斯分布或双指数分布中抽取具有指定位置(或平均值)和标度(衰减)的样本。
logistic([loc, scale, size]) 从物流配送中抽取样本。
lognormal([mean, sigma, size]) 从对数正态分布中抽取样本。
logseries(p[, size]) 从对数级数分布中抽取样本。
multinomial(n, pvals[, size]) 从多项式分布中抽取样本。
multivariate_normal(mean, cov[, size, …) 从多元正态分布中抽取随机样本。
negative_binomial(n, p[, size]) 从负二项分布中抽取样本。
noncentral_chisquare(df, nonc[, size]) 从非中心卡方分布中抽取样本。
noncentral_f(dfnum, dfden, nonc[, size]) 从非中心F分布中抽取样本。
normal([loc, scale, size]) 从正态(高斯)分布中抽取随机样本。
pareto(a[, size]) 从Pareto II或Lomax分布中抽取具有特定形状的样本。
poisson([lam, size]) 从泊松分布中抽取样本。
power(a[, size]) 在[ 0,1 ]从正指数为a - 1的幂分布中抽取样本。
rayleigh([scale, size]) 从瑞利分布中抽取样本。
standard_cauchy([size]) 从模式= 0的标准Cauchy分布中抽取样本。
standard_exponential([size]) 从标准指数分布中抽取样本。
standard_gamma(shape[, size]) 从标准伽马分布中抽取样本。
standard_normal([size]) 从标准正态分布中抽取样本(平均值= 0,stdev = 1 )。
standard_t(df[, size]) 从具有df自由度的标准学生t分布中抽取样本。
triangular(left, mode, right[, size]) 从[左、右区间的三角形分布中抽取样本]。
uniform([low, high, size]) 从均匀分布中抽取样本。
vonmises(mu, kappa[, size]) 从冯·米塞斯分布中抽取样本。
wald(mean, scale[, size]) 从瓦尔德分布或逆高斯分布中提取样本。
weibull(a[, size]) 从威布尔分布中抽取样本。
zipf(a[, size]) 从Zipf分发中抽取样本。

$17.4 随机发生器

函数 说明
RandomState([seed]) 梅森捻线机伪随机数发生器的容器。
seed([seed]) 给发电机播种。
get_state() 返回表示生成器内部状态的元组。
set_state(state) 从元组中设置生成器的内部状态。

$18 集合操作

函数 说明
unique(ar[, return_index, return_inverse, …]) 查找数组的唯一元素。
in1d(ar1, ar2[, assume_unique, invert]) 测试一维数组的每个元素是否也存在于第二个数组中。
intersect1d(ar1, ar2[, assume_unique]) 找到两个数组的交集。
isin(element, test_elements[, …]) 计算 test_elements 中的元素,仅在元素上广播。
setdiff1d(ar1, ar2[, assume_unique]) 找出两个数组的集合差。
setxor1d(ar1, ar2[, assume_unique]) 查找两个数组的异或集。
union1d(ar1, ar2) 找到两个数组的并集。

$19 排序、搜索、计数

$19.1 整理

函数 说明
sort(a[, axis, kind, order]) 返回数组的排序副本。
lexsort(keys[, axis]) 使用键序列执行间接排序。
argsort(a[, axis, kind, order]) 返回对数组进行排序的索引。
ndarray.sort([axis, kind, order]) 就地排序数组。
msort(a) 返回沿第一轴排序的数组副本。
sort_complex(a) 首先使用实部,然后使用虚部对复杂数组进行排序。
partition(a, kth[, axis, kind, order]) 返回数组的分区副本。
argpartition(a, kth[, axis, kind, order]) 使用kind关键字指定的算法沿给定轴执行间接分区。

$19.2 搜索

函数 说明
argmax(a[, axis, out]) 返回沿轴的最大值的索引。
nanargmax(a[, axis]) 忽略NaNs返回指定轴上最大值的索引。
argmin(a[, axis, out]) 返回沿轴的最小值的索引。
nanargmin(a[, axis]) 忽略NaNs返回指定轴上最小值的索引。
argwhere(a) 查找非零数组元素的索引,按元素分组。
nonzero(a) 返回非零元素的索引。
flatnonzero(a) 返回在a的扁平版本中非零的索引
where(condition, [x, y]) 根据条件,返回x或y中的元素。
searchsorted(a, v[, side, sorter]) 查找应该插入元素以维持秩序的索引。
extract(condition, arr) 返回满足某些条件的数组元素。

$19.3 计数

函数 说明
count_nonzero(a[, axis]) 统计数组a中非零值的数量

$20 统计学

$20.1 次序统计

函数 说明
amin(a[, axis, out, keepdims]) 沿轴返回数组的最小值或最小值。
amax(a[, axis, out, keepdims]) 返回数组的最大值或沿轴的最大值。
nanmin(a[, axis, out, keepdims]) 返回数组的最小值或沿轴的最小值,忽略任何南线。
nanmax(a[, axis, out, keepdims]) 沿轴返回数组的最大值或最大值,忽略任何南线。
ptp(a[, axis, out]) 沿轴的值范围(最大-最小)。
percentile(a, q[, axis, out, …]) 沿指定轴计算数据的qth百分位。
nanpercentile(a, q[, axis, out, …]) 计算沿指定轴的数据的qth百分位,而忽略nan值。

$20.2 平均数和差异

函数 说明
median(a[, axis, out, overwrite_input, keepdims]) 计算沿指定轴的中间值。
average(a[, axis, weights, returned]) 沿指定轴计算加权平均值。
mean(a[, axis, dtype, out, keepdims]) 沿指定轴计算算术平均值。
std(a[, axis, dtype, out, ddof, keepdims]) 计算沿指定轴的标准偏差。
var(a[, axis, dtype, out, ddof, keepdims]) 计算沿指定轴的方差。
nanmedian(a[, axis, out, overwrite_input, …]) 计算沿指定轴的中间值,而忽略南社。
nanmean(a[, axis, dtype, out, keepdims]) 沿指定轴计算算术平均值,忽略南社。
nanstd(a[, axis, dtype, out, ddof, keepdims]) 计算沿指定轴的标准偏差,而忽略NaNs。
nanvar(a[, axis, dtype, out, ddof, keepdims]) 计算沿指定轴的方差,而忽略NaNs。

$20.3 相关

函数 说明
corrcoef(x[, y, rowvar, bias, ddof]) 返回皮尔逊积-矩相关系数。
correlate(a, v[, mode]) 两个一维序列的互相关。
cov(m[, y, rowvar, bias, ddof, fweights, …]) 给定数据和权重,估计协方差矩阵。

$20.4 直方图

函数 说明
histogram(a[, bins, range, normed, weights, …]) 计算一组数据的直方图。
histogram2d(x, y[, bins, range, normed, weights]) 计算两个数据样本的二维直方图。
histogramdd(sample[, bins, range, normed, …]) 计算一些数据的多维直方图。
bincount(x[, weights, minlength]) 统计非负整数数组中每个值的出现次数。
digitize(x, bins[, right]) 返回输入数组中每个值所属的箱的索引。

Share