numpy 函数库 分类整理概览

numpy 函数库 分类整理概览

数组创建和转换

  • abs, absolute, arange, array, asanyarray, asarray, ascontiguousarray, asfarray, asfortranarray, atleast_1d, atleast_2d, atleast_3d, empty, empty_like, eye, full, full_like, from_dlpack, frombuffer, fromfile, fromfunction, fromiter, frompyfunc, fromregex, fromstring, identity, indices, int8, int16, int32, int64, int_, intc, intp, linspace, load, loadtxt, mgrid, ogrid, ones, ones_like, zeros, zeros_like

以下是一个表格,列出了上述NumPy函数及其简要说明:

函数作用
abs/absolute计算数组元素的绝对值
arange返回等差数列数组,类似于Python的range函数
array从任何对象(如列表、元组等)创建NumPy数组
asanyarray将输入转换为NumPy数组,但不保证数据连续性或特定顺序
asarrayasanyarray类似,但如果输入已经是数组,则不复制数据
ascontiguousarray返回输入数组的连续副本(如果输入已经是连续的,则返回原始数组)
asfarray将输入转换为浮点数数组(如果可能)
asfortranarray返回输入数组的Fortran连续副本(如果输入已经是Fortran连续的,则返回原始数组)
atleast_1d, atleast_2d, atleast_3d将输入转换为至少具有指定维度的数组
empty返回一个给定形状和类型的未初始化数组
empty_like返回一个与给定数组形状和类型相同但未初始化的数组
eye返回一个对角线为1,其余位置为0的二维数组(单位矩阵)
full返回一个给定形状和类型的数组,用指定值填充
full_like返回一个与给定数组形状和类型相同并用指定值填充的数组
from_dlpack从DLPack格式的封装创建数组
frombuffer从缓冲区解释一维数组
fromfile从文件中读取数据并返回数组
fromfunction通过从给定坐标生成值来构造数组
fromiter从可迭代对象创建一维数组
frompyfunc接受一个Python函数并将其转换为ufunc
fromregex从文件中读取数据,并基于正则表达式将字符串分割成数组
fromstring从字节字符串创建一维数组
identity返回一个给定大小的单位矩阵(与eye类似)
indices返回表示网格索引的数组
int8, int16, int32, int64分别创建8位、16位、32位和64位整数类型的标量或数组
int_, intc, intp分别表示平台相关的整数类型(默认整数类型、C整数类型和指针大小的整数类型)
linspace返回指定间隔内的等间隔数字
load.npy文件加载数组
loadtxt从文本文件加载数据到数组
mgrid返回网格化索引的多维数组,用于评估函数
ogridmgrid类似,但返回的是开放网格
ones返回一个给定形状和类型的数组,所有元素都设置为1
ones_like返回一个与给定数组形状和类型相同,所有元素都设置为1的数组
zeros返回一个给定形状和类型的数组,所有元素都设置为0
zeros_like返回一个与给定数组形状和类型相同,所有元素都设置为0的数组

数学运算

  • add, subtract, multiply, divide, floor_divide, true_divide, mod, remainder, power, exp, exp2, expm1, log, log10, log2, log1p, logaddexp, logaddexp2, sqrt, square, cbrt, ceil, floor, fix, fmax, fmin, fmod, copysign, frexp, hypot, ldexp, nextafter, rint, trunc, gcd, lcm

以下是一个表格,列出了上述NumPy函数及其简要说明:

函数作用
add对数组进行逐元素相加
subtract对数组进行逐元素相减
multiply对数组进行逐元素相乘
divide对数组进行逐元素相除(整数除法,向下取整)
floor_divide对数组进行逐元素相除,返回不大于结果的最大整数(向下取整除法)
true_divide对数组进行逐元素相除,返回浮点数结果(真实除法)
mod返回数组元素相除的余数(与%运算符类似)
remainder返回数组元素相除的余数,考虑符号(与%运算符在某些情况下的行为不同)
power计算数组元素的整数幂
exp计算数组元素的自然指数(e的幂)
exp2计算数组元素的2的幂
expm1计算exp(x) - 1,对于非常小的x,这比直接计算exp(x)然后减去1更准确
log计算数组元素的自然对数(底数为e)
log10计算数组元素的以10为底的对数
log2计算数组元素的以2为底的对数
log1p计算log(1 + x),对于非常小的x,这比直接计算log(1 + x)更准确
logaddexp计算log(exp(x1) + exp(x2)),这是一种稳定的方式,可以防止上溢
logaddexp2计算log2(2**x1 + 2**x2),类似于logaddexp,但使用基数2
sqrt计算数组元素的平方根
square计算数组元素的平方
cbrt计算数组元素的立方根
ceil对数组元素向上取整
floor对数组元素向下取整
fix向零方向取整(类似于截断,但不改变浮点数的符号)
fmax返回数组中对应元素的最大值(逐元素比较)
fmin返回数组中对应元素的最小值(逐元素比较)
fmod返回数组元素相除的余数,考虑符号(与%运算符在某些情况下的行为相同)
copysign将第二个数组中的值的符号复制到第一个数组中的值上
frexp将数组分解为尾数和指数,使得x == mantissa * 2**exponent,其中`0.5 <=
hypot计算直角三角形的斜边长度,给定两个直角边(即计算欧几里得范数)
ldexp返回x * (2**i),其中x是数组,i是整数
nextafter返回两个相邻的可表示浮点数之间的值
rint对数组元素进行四舍五入到最接近的整数
trunc对数组元素向零方向截断
gcd计算两个或多个整数的最大公约数
lcm计算两个整数的最小公倍数

数组操作

  • append, concatenate, delete, insert, reshape, resize, roll, rollaxis, swapaxes, transpose, moveaxis, flatten, ravel, flip, fliplr, flipud, rot90, tile, repeat, expand_dims, broadcast_to, choose, clip, compress, extract, place, partition, sort, argsort, argpartition, argwhere, searchsorted, unique, intersect1d, setdiff1d, union1d, setxor1d, in1d, copy, copyto, pad

以下是一个表格,列出了上述NumPy函数及其简要说明:

函数作用
append在数组的末尾添加值
concatenate沿指定轴连接两个或多个数组
delete删除数组指定位置的子数组
insert在数组的指定位置插入值
reshape改变数组的形状,不改变数据
resize返回指定形状的新数组,如果新形状大于原始形状,则用0填充
roll沿指定轴滚动数组元素
rollaxis将指定轴移动到新的位置
swapaxes交换数组的两个轴
transpose反转或置换数组的轴
moveaxis将数组的轴移动到新的位置
flatten将数组降为一维,返回新数组(原始数组不变)
ravel返回数组的一维视图(原始数组变化会影响视图)
flip反转数组元素的顺序
fliplr沿水平轴(轴1)反转数组
flipud沿垂直轴(轴0)反转数组
rot90将数组逆时针旋转90度
tile通过重复数组来创建新的数组
repeat沿指定轴重复数组元素
expand_dims在数组的指定位置增加新的轴
broadcast_to将数组广播到新形状
choose使用给定的索引数组从多个数组中选择元素
clip将数组中的值限制在给定的最小值和最大值之间
compress使用布尔索引数组过滤数组元素
extract使用布尔索引数组从数组中提取元素
place将值放入数组的指定位置
partition对数组的元素进行部分排序,使得指定位置的元素位于排序后的正确位置
sort对数组的元素进行排序
argsort返回数组元素排序后的索引
argpartition返回数组元素部分排序后的索引
argwhere返回非零元素的索引数组
searchsorted查找排序数组中应插入元素以保持顺序的位置
unique返回数组中的唯一元素
intersect1d返回两个数组的交集
setdiff1d返回第一个数组中存在但第二个数组中不存在的元素
union1d返回两个数组的并集
setxor1d返回两个数组的对称差集
in1d测试一维数组中的元素是否也存在于另一个数组中
copy返回数组的副本
copyto将值从一个数组复制到另一个数组
pad在数组的边界填充值

统计和聚合

  • all, any, allclose, allclose, alltrue, amax, amin, argmax, argmin, average, count_nonzero, cov, corrcoef, correlate, cumprod, cumsum, gradient, mean, median, nanargmax, nanargmin, nanmean, nanmedian, nanmin, nanmax, nanstd, nansum, nanvar, percentile, prod, ptp, quantile, std, sum, var

以下是一个表格,列出了上述NumPy统计和聚合函数及其简要说明。请注意,我移除了重复的allclose函数,并添加了一些注释来解释某些函数:

函数作用
all判断数组中所有元素是否都是True(或非零)
any判断数组中是否存在True(或非零)元素
allclose判断两个数组是否接近相等(考虑到浮点数精度)
amax, max返回数组中的最大值
amin, min返回数组中的最小值
argmax返回最大值的索引
argmin返回最小值的索引
average计算数组元素的加权平均值
count_nonzero计算数组中非零元素的数量
cov计算协方差矩阵
corrcoef计算相关系数矩阵
correlate执行一维或二维的相关操作
cumprod计算数组的累积乘积
cumsum计算数组的累积和
gradient计算n维数组的梯度
mean计算数组元素的平均值
median计算数组元素的中位数
nanargmax返回忽略NaN值的最大值的索引
nanargmin返回忽略NaN值的最小值的索引
nanmean计算忽略NaN值的数组元素的平均值
nanmedian计算忽略NaN值的数组元素的中位数
nanmin返回忽略NaN值的数组中的最小值
nanmax返回忽略NaN值的数组中的最大值
nanstd计算忽略NaN值的数组元素的标准差
nansum计算忽略NaN值的数组元素的和
nanvar计算忽略NaN值的数组元素的方差
percentile计算给定百分位数的值
prod计算数组元素的乘积
ptp计算数组元素的最大值和最小值之间的差(范围)
quantile计算给定分位数的值(与percentile类似,但分位数范围通常为0到1)
std计算数组元素的标准差
sum计算数组元素的和
var计算数组元素的方差

请注意,amaxamin有时也写作maxmin,它们的功能是相同的。同样,某些函数(如correlategradient)可能需要额外的参数或特定的输入形状来正确执行操作。在使用这些函数时,建议查阅NumPy的官方文档以获取更详细的信息和示例。

类型和数据结构

  • dtype, dtypes, result_type, common_type, minimum_sctype, can_cast, cast, issubdtype, issubsctype, obj2sctype, sctype2char, sctypeDict, sctypes, typecodes, typename, ndarray, recarray, record, void

以下是一个表格,列出了上述NumPy数据类型和数组结构相关的函数及其简要说明:

函数/类型作用
dtype描述数组中元素的数据类型对象。它包含用于解释数组中元素所需的信息。
dtypes通常不是一个独立的函数,而是与NumPy数组相关的属性,用于获取数组元素的数据类型。但在某些上下文中,它可能指代所有可用的数据类型。
result_type根据输入数组确定数组运算结果的数据类型。
common_type确定可以存储输入数组数据的最小数据类型。
minimum_sctype返回可以存储给定数据类型值的最小标量类型。
can_cast检查数据类型之间的转换是否安全。
cast在NumPy中,通常不直接使用cast函数,但numpy.ndarray.astype()方法用于将数组转换为指定的数据类型。
issubdtype检查第一个数据类型是否是第二个数据类型的子类型。
issubsctypeissubdtype类似,但专门用于标量类型。
obj2sctype返回一个dtype,该dtype对应于将标量对象数组安全地转换为NumPy数组所需的类型。
sctype2char返回与给定数据类型对应的字符代码。
sctypeDict返回一个字典,其键是字符代码,值是相应的数据类型。
sctypes返回NumPy支持的标量数据类型的分类字典。
typecodes返回NumPy支持的所有数据类型代码的列表。
typename返回给定数据类型的名称。
ndarrayNumPy的核心数据结构,一个多维数组对象。
recarray具有字段名的NumPy数组,允许通过属性而不是索引来访问元素。
record通常与recarray一起使用,表示记录数组中的单个记录。
void用于创建没有预定义意义的数据类型的数组,通常与结构化数组一起使用。

请注意,一些函数(如obj2sctypesctypeDict)在较新版本的NumPy中可能不太常用或已被其他功能所取代。在编写代码时,建议查阅NumPy的官方文档以获取最准确和最新的信息。

三角函数和反三角函数

  • sin, cos, tan, sinh, cosh, tanh, arcsin, arccos, arctan, arctan2, arcsinh, arccosh, arctanh

以下是一个表格,列出了上述NumPy三角函数及其反函数,并说明了每个函数的作用:

函数作用
sin计算正弦值。对于数组中的每个元素x(以弧度为单位),返回sin(x)
cos计算余弦值。对于数组中的每个元素x(以弧度为单位),返回cos(x)
tan计算正切值。对于数组中的每个元素x(以弧度为单位),返回tan(x)
sinh计算双曲正弦值。对于数组中的每个元素x,返回sinh(x)
cosh计算双曲余弦值。对于数组中的每个元素x,返回cosh(x)
tanh计算双曲正切值。对于数组中的每个元素x,返回tanh(x)
arcsin计算反正弦值(也称为反正弦或正弦的逆函数)。对于数组中的每个元素y(在-1到1之间),返回其反正弦值(以弧度为单位)。
arccos计算反余弦值(也称为反余弦或余弦的逆函数)。对于数组中的每个元素y(在-1到1之间),返回其反余弦值(以弧度为单位)。
arctan计算反正切值(也称为反正切或正切的逆函数)。对于数组中的每个元素x,返回其反正切值(以弧度为单位)。
arctan2计算两个值的反正切值,考虑它们的符号以确定象限。它类似于笛卡尔坐标中的角度计算。
arcsinh计算反双曲正弦值(也称为双曲正弦的逆函数)。对于数组中的每个元素y,返回其反双曲正弦值。
arccosh计算反双曲余弦值(也称为双曲余弦的逆函数)。对于数组中的每个元素y(大于或等于1),返回其反双曲余弦值。
arctanh计算反双曲正切值(也称为双曲正切的逆函数)。对于数组中的每个元素y(在-1到1之间),返回其反双曲正切值。

窗口函数

  • bartlett, blackman, hamming, hanning, kaiser

以下是一个表格,列出了上述NumPy窗口函数,并说明了每个函数的作用:

函数作用
bartlett生成Bartlett窗口。该窗口主要用于周期图法非周期信号分析,可以减小泄露。它呈现三角形状,两端值为0,中间值为1。
blackman生成Blackman窗口。Blackman窗口是一种具有低旁瓣的窗口函数,常用于频谱分析。其形状由三个余弦项的和构成,具有平滑的过渡。
hamming生成Hamming窗口。Hamming窗口是改进的升余弦窗,其旁瓣幅度明显小于矩形窗。它常用于减少泄漏,但会引入一些额外的吉布斯现象。
hanning生成Hanning窗口,也称为Hanning函数或升余弦窗。它类似于Hamming窗口,但系数略有不同。Hanning窗口常用于减少FFT结果中的旁瓣。
kaiser生成Kaiser窗口。Kaiser窗口是一种可调整的窗口函数,可以根据需要调整主瓣宽度和旁瓣水平。Kaiser窗口的系数由零阶贝塞尔函数计算得出。

这些窗口函数通常用于信号处理中,以减少频谱泄露并改善频率分辨率。不同的窗口函数具有不同的频率响应特性,适用于不同的应用场景。

线性代数

  • dot, matmul, inner, outer, linalg (包含了多个线性代数函数)

以下是一个表格,列出了上述NumPy数学运算和线性代数函数,并说明了每个函数的作用:

函数/模块作用
dot计算两个数组的点积。对于一维数组,它等于数组元素的乘积之和;对于二维数组,它执行矩阵乘法;对于更高维度的数组,它执行点积的逐元素计算。
matmul执行矩阵乘法。与dot类似,但它支持广播,并遵循特殊的规则来处理高维数组。在Python 3.5及更高版本中,@运算符也用于矩阵乘法。
inner计算一维数组的内积。对于两个一维数组abinner(a, b)等于dot(a, b)。在高维数组中,inner不执行逐元素计算,而是将数组视为向量。
outer计算两个向量的外积。对于一维数组abouter(a, b)返回一个二维数组,其中第i行第j列的元素是a[i] * b[j]
linalgNumPy的线性代数模块,包含了许多用于线性代数运算的函数,如求解线性方程组、计算矩阵的行列式、逆矩阵、特征值和特征向量等。这个模块提供了许多高级功能,是数值计算和科学计算中不可或缺的一部分。

请注意,linalg不是一个函数,而是一个包含多个函数的模块。例如,numpy.linalg.inv()用于计算矩阵的逆,numpy.linalg.eig()用于计算矩阵的特征值和特征向量等。在使用linalg模块中的函数时,需要明确指定要调用的函数名。

其他特殊函数

  • angle, binary_repr, base_repr, broadcast, broadcast_arrays, broadcast_shapes, busday_count, busday_offset, busdaycalendar, char, character, chararray, compare_chararrays, complex128, complex64, complex_, complexfloating, conjugate, datetime64, datetime_as_string, datetime_data, deg2rad, degrees, diag, diag_indices, diag_indices_from, diagflat, digitize, disp, ediff1d, einsum, einsum_path, emath, euler_gamma, finfo, flatiter, flatnonzero, flipud, format_float_positional, format_float_scientific, format_parser, from_dlpack, get_array_wrap, get_include, get_printoptions, getbufsize, geterr, geterrcall, geterrobj, gradient, heaviside, i0, iinfo, imag, inexact, inf, infty, intc, intp, is_busday, isclose, iscomplex, iscomplexobj, isfinite, isfortran, isin, isinf, isnan, isnat, isneginf, isposinf, isreal, isrealobj, isscalar, issctype, issubclass_, iterable, kaiser, ldexp, lexsort, logspace, machar, mask_indices, mat, matrix, may_share_memory, newaxis, not_equal, oldnumeric, poly, poly1d, polyadd, polyder, polydiv, polyfit, polyint, polymul, polysub, polyval, positive, printoptions, promote_types, put, put_along_axis, putmask, radians, random, ravel_multi_index, real, real_if_close, rec, recfromcsv, recfromtxt, reciprocal, remainder, require, right_shift, round_, s_, safe_eval, save, savetxt, savez, savez_compressed, searchsorted, select, set_numeric_ops, set_printoptions, set_string_function, setbufsize, seterr, seterrcall, seterrobj, shares_memory, show_config, show_runtime, sign, signbit, spacing, split, squeeze, stack, str_, subtract, take, take_along_axis, tensordot, testing, timedelta64, trace, trapz, tri, tril, tril_indices, tril_indices_from, trim_zeros, triu, triu_indices, triu_indices_from, unwrap, vander, vdot, vectorize, vsplit, vstack, where, who

注意:一些函数可能属于多个类别,这里我尽量根据其主要功能进行分类。此外,像linalg这样的模块内部包含了多个线性代数函数,这里只将其作为一个类别列出。

这些函数之所以“特殊”,是因为它们在NumPy库中提供了特定且非常有用的功能,这些功能通常是针对数值计算、数据操作、线性代数或特殊数学运算的。下面我会简要解释一些您列出的函数的特殊之处:

  1. 数学和数值计算函数

    • angle:返回复数的相位角(以弧度为单位)。
    • deg2rad, degrees:角度和弧度之间的转换。
    • complex128, complex64 等:定义特定精度的复数数据类型。
    • conjugate:返回复数的共轭。
    • logspace:在对数刻度上生成等间距的数字。
    • poly 及其相关函数:处理多项式,如加法、除法、积分等。
  2. 数据操作函数

    • broadcast, broadcast_arrays, broadcast_shapes:处理NumPy中的广播规则,这是NumPy能够高效处理不同形状数组之间运算的关键。
    • diag, diag_indices, diagflat:处理对角矩阵或提取对角线元素。
    • digitize:将值映射到分桶或区间的索引。
    • ravel, flatten:将多维数组转换为一维数组。
    • stack, vstack, hstack:沿不同轴堆叠数组。
    • roll, rollaxis, moveaxis:沿指定轴滚动或移动数组的元素。
    • reshape:改变数组的形状。
    • take, take_along_axis:根据索引选择数组的元素。
  3. 日期和时间函数

    • datetime64:定义日期时间数据类型。
    • busday_count, busday_offset:计算工作日数量或偏移工作日。
    • timedelta64:定义时间间隔数据类型。
  4. 字符和字符串处理函数

    • char, character, chararray:处理字符数组。
    • binary_repr, base_repr:将整数转换为二进制或其他进制的字符串表示。
    • format_float_positional, format_float_scientific:格式化浮点数的显示。
  5. 线性代数函数(虽然linalg是一个模块,但列在这里以强调其特殊性):

    • 包含求解线性方程组、计算矩阵的行列式、特征值和特征向量等高级功能。
  6. 其他特殊函数

    • einsum:使用爱因斯坦求和约定计算多维数组上的操作。
    • kaiser:生成Kaiser窗口函数,常用于信号处理。
    • isclose:判断两个浮点数是否接近相等,考虑到浮点数的精度问题。
    • searchsorted:在已排序数组中查找插入元素的索引,以保持排序。
    • unwrap:对相位角进行解包裹,使其连续跨越360度边界。
    • vander:生成Vandermonde矩阵。
  • 15
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sun_Raiser

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值