在科学计算与数据分析中数组中的数值往往需要进行各种数学运算例如求绝对值、指数、对数、三角函数或向量长度等。NumPy 提供了一组高度向量化的数学函数可以对数组中的所有元素进行批量计算而无需使用 Python 循环。按照功能划分NumPy 中常用的数学运算函数通常可以分为以下几类1基本数值运算2幂与指数运算3对数运算4三角函数与角度转换5取整与数值限制6向量与几何计算7双曲函数与反双曲函数8指数与对数的数值稳定函数9常用数学常量一、基本数值运算abs()计算数组元素的绝对值Absolute Value。numpy.abs(x)参数说明• x输入数组示例import numpy as np a np.array([-3,-1,2,-5])np.abs(a)# [3 1 2 5]说明numpy.abs 是 NumPy 的向量化绝对值函数对应 Python 内置函数 abs()的数组版本。fabs()计算浮点数绝对值Floating Absolute Value。numpy.fabs(x)参数说明• x输入数组示例a np.array([-2.5, -1.2, 3.0])np.fabs(a)# [2.5 1.2 3. ]说明fabs() 主要用于实数绝对值计算返回值总是浮点类型若要处理复数绝对值应使用 np.abs()。square()计算数组元素的平方Square。numpy.square(x)参数说明• x输入数组示例a np.array([1,2,3,4]) np.square(a)# [ 1 4 9 16]sqrt()计算数组元素的平方根Square Root。numpy.sqrt(x)参数说明• x输入数组示例a np.array([1,4,9,16]) np.sqrt(a)# [1. 2. 3. 4.]cbrt()计算立方根Cube Root。numpy.cbrt(x)参数说明• x输入数组示例 1np.cbrt([1, -8, 27])# [1. -2. 3.]说明与 sqrt() 相比cbrt() 支持负数输入。reciprocal()计算每个元素的倒数。常用于数值归一化或比例计算。numpy.reciprocal(x)参数说明• x输入数组示例np.reciprocal([1., 2., 4.])# [1. 0.5 0.25]说明当输入为整数数组时结果仍为整数类型小数部分会被截断。二、幂与指数运算power()幂运算Power。numpy.power(x1, x2)参数说明• x1底数数组• x2指数示例a np.array([1,2,3]) np.power(a,2)# [1 4 9]exp()指数函数Exponential Function。numpy.exp(x)计算其中 e 是自然常数约等于 2.71828。示例np.exp([0,1,2])# [1. 2.71828183 7.3890561 ]三、对数运算log()计算自然对数Natural Logarithm。numpy.log(x)自然对数指的是以 e 为底的对数。示例np.log([1, np.e, np.e**2])# [0. 1. 2.]log10()计算以 10 为底的对数Logarithm Base 10。numpy.log10(x)示例np.log10([1,10,100])# [0. 1. 2.]log2()计算以 2 为底的对数Logarithm Base 2。numpy.log2(x)示例np.log2([1,2,4,8])# [0. 1. 2. 3.]四、三角函数与角度转换NumPy 提供常见的三角函数用于信号处理、物理建模与工程计算。注意NumPy 的三角函数默认使用弧度radian。1、三角函数sin()计算正弦值Sine。numpy.sin(x)示例np.sin(np.pi/2)# 1.0cos()计算余弦值Cosine。numpy.cos(x)示例np.cos(0)# 1.0tan()计算正切值Tangent。numpy.tan(x)示例np.tan(np.pi/4)# 1.02、逆三角函数逆三角函数用于根据函数值反求角度。返回值单位为弧度。arcsin()反正弦函数Inverse Sine。numpy.arcsin(x)参数说明• x输入数组或数值取值范围通常为 [-1, 1]示例np.arcsin(1)# 1.5707963267948966arccos()反余弦函数Inverse Cosine。numpy.arccos(x)参数说明• x输入数组或数值取值范围通常为 [-1, 1]示例np.arccos([1, 0, -1])# [0. 1.57079633 3.14159265]arctan()反正切函数Inverse Tangent。numpy.arctan(x)参数说明• x输入数组或数值可以为任意实数示例np.arctan(1)# 0.7853981633974483arctan2()根据平面点坐标计算角度。numpy.arctan2(y, x)参数说明• y点的纵坐标• x点的横坐标返回从 x 轴正方向到点 (x,y) 的极角单位为弧度。示例y np.array([1, 1, -1, -1])x np.array([1, -1, -1, 1]) np.arctan2(y, x)# [ 0.78539816 2.35619449 -2.35619449 -0.78539816]3、角度与弧度转换deg2rad() / radians()角度转换为弧度。numpy.deg2rad(x)numpy.radians(x)参数说明• x输入数组角度值示例np.deg2rad([0, 90, 180])# [0. 1.57079633 3.14159265] np.radians(180)# 3.141592653589793rad2deg() / degrees()弧度转换为角度。numpy.rad2deg(x)numpy.degrees(x)参数说明• x输入数组弧度值示例np.rad2deg([0, np.pi/2, np.pi])# [ 0. 90. 180.] np.degrees(np.pi/2)# 90.0五、取整与数值限制ceil()向上取整。numpy.ceil(x)示例np.ceil([1.2, 2.8])# [2. 3.]floor()向下取整。numpy.floor(x)round()按指定小数位进行舍入。对于恰好位于中间的值NumPy 采用“舍入到最近的偶数”的规则。numpy.round(a, decimals0)参数说明• a输入数组或数值。可以是标量、列表或 NumPy 数组• decimals可选指定保留的小数位数默认值为 0decimals 0保留指定的小数位数。decimals 0舍入到最接近的整数对于恰好位于中间的值采用取最近偶数的规则。decimals 0在整数部分进行四舍五入。例如 decimals -1 表示四舍五入到十位。示例 1默认取整np.round([1.4, 2.6, 3.5])# [1. 3. 4.]示例 2保留两位小数a np.array([1.234, 2.567, 3.891])np.round(a, 2)# [1.23 2.57 3.89]示例 3对整数部分取整np.round([123, 456, 789], -2)# [100 500 800]trunc()截断小数部分。numpy.trunc(x)示例np.trunc([1.4, 2.6, 3.5])# [1. 2. 3.]说明该函数直接去掉小数部分相当于朝 0 的方向取整。clip()将数值限制在指定区间。numpy.clip(a, a_min, a_max)参数说明• a输入数组或数值。可以是标量、列表或 NumPy 数组• a_min下界最小允许值。当数组元素小于该值时将被替换为 a_min• a_max上界最大允许值。当数组元素大于该值时将被替换为 a_max示例np.clip([1, 5, 10], 2, 8)# [2 5 8]sign()返回符号值。numpy.sign(x)返回• -1负数• 0零• 1正数mod()计算取模Modulo。其结果与除数具有相同的符号。numpy.mod(x1, x2)参数说明• x1被除数• x2除数返回余数。示例 1np.mod(7, 3)# 1示例 2np.mod([5, 6, 7], 3)# [2 0 1]示例 3np.mod(-5, 3)# 1fmod()计算浮点取模Floating Modulo。numpy.fmod(x1, x2)参数说明• x1被除数• x2除数返回浮点余数。示例 1np.fmod(7, 3)# 1说明与 mod() 的主要区别是fmod() 的结果符号与被除数相同示例 2np.fmod(-5, 3)# -2六、向量与几何计算在机器学习与线性代数中经常需要计算向量长度或矩阵范数。hypot()计算直角三角形斜边长度。numpy.hypot(x1, x2)示例np.hypot(3, 4)# 5.0norm()计算向量或矩阵的范数Norm。numpy.linalg.norm(x, ordNone, axisNone, keepdimsFalse)参数说明• x输入向量或矩阵• ord范数类型常见类型None二范数Euclidean norm1L1 范数2L2 范数• axis指定沿哪个轴计算范数• keepdims是否保留被约简的维度示例a np.array([3,4]) np.linalg.norm(a)# 5.0说明这里计算的是向量长度欧几里德范数。七、双曲函数与反双曲函数1、双曲函数双曲函数Hyperbolic Functions在形式上类似三角函数但对应的是双曲线。sinh()双曲正弦。numpy.sinh(x)参数说明• x输入数组或数值表示自变量示例 1np.sinh(0)# 0.0示例 2数组计算np.sinh([0, 1, 2])# [0. 1.17520119 3.62686041]cosh()双曲余弦。numpy.cosh(x)参数说明• x输入数组或数值示例 1np.cosh(0)# 1.0示例 2np.cosh([0, 1, 2])# [1. 1.54308063 3.76219569]tanh()双曲正切。numpy.tanh(x)参数说明• x输入数组或数值。示例 1np.tanh(0)# 0.0示例 2np.tanh([-2, -1, 0, 1, 2])# [-0.96402758 -0.76159416 0. 0.76159416 0.96402758]说明tanh() 的函数值范围为(-1,1)。随着 x 增大函数值逐渐接近 1随着 x 减小函数值逐渐接近 -1。tanh() 在机器学习中曾被广泛用作神经网络激活函数。2、反双曲函数反双曲函数Inverse Hyperbolic Functions用于根据双曲函数值反求自变量。arcsinh()计算反双曲正弦Inverse Hyperbolic Sine。numpy.arcsinh(x)参数说明• x输入数组或数值可以为任意实数。示例 1np.arcsinh(0)# 0.0示例 2np.arcsinh([0, 1, 2])# [0. 0.88137359 1.44363548]说明反双曲正弦函数在整个实数范围内都有定义。arccosh()计算反双曲余弦Inverse Hyperbolic Cosine。numpy.arccosh(x)参数说明• x输入数组或数值示例 1np.arccosh(1)# 0.0示例 2np.arccosh([1, 2, 3])# [0. 1.3169579 1.76274717]说明arccosh(x) 在实数范围通常要求 x 1。arctanh()计算反双曲正切Inverse Hyperbolic Tangent。numpy.arctanh(x)参数说明• x输入数组或数值示例 1np.arctanh(0)# 0.0示例 2np.arctanh([0, 0.5, -0.5])# [ 0. 0.54930614 -0.54930614]说明arctanh(x) 在实数范围通常要求 |x| 1。八、指数与对数的数值稳定函数在科学计算和机器学习中有些表达式在直接计算时容易出现数值精度损失floating-point precision loss。NumPy 提供了一些专门的函数用于提高数值计算的稳定性。log1p()返回 ln(1x) 的计算结果。numpy.log1p(x)参数说明• x输入数组或数值示例 1np.log1p(0.001)# 0.0009995003330835331示例 2np.log1p([0.1, 1, 10])# [0.09531018 0.69314718 2.39789527]说明当 x 非常接近 0 时log(1x) 的直接计算可能产生精度损失。log1p() 在内部使用更稳定的算法因此更适合小数值计算。expm1()返回 e^x − 1 的计算结果。numpy.expm1(x)参数说明• x输入数组或数值示例 1np.expm1(0.001)# 0.0010005001667083417示例 2np.expm1([0, 1, 2])# [0. 1.71828183 6.3890561 ]说明当 x 接近 0 时直接计算 exp(x) - 1 可能会产生精度误差。expm1() 使用数值稳定算法可以提高计算精度。九、常用数学常量NumPy 提供了一组常用数学常量可直接参与数组运算。pi圆周率常量。数值约为 3.141592653589793。numpy.pi示例np.sin(np.pi / 2)# 1.0e自然常数。数值约为 2.718281828459045。numpy.e示例np.log(np.e)# 1.0inf正无穷。numpy.inf示例np.array([1, 2, np.inf])# [ 1. 2. inf]nan非数值Not a Number。numpy.nan说明通常用于表示未定义的浮点结果也常在数值计算中充当缺失值标记。NumPy 提供一组专门处理 NaN 的函数例如np.nanmean()np.nanmax()np.nanmin() 小结NumPy 提供了一组用于数组数学计算的函数体系包括基本数值运算abs、sqrt、square、幂与指数运算power、exp、对数运算log、log10、log2、三角函数与角度转换sin、cos、tan、deg2rad、取整与数值限制ceil、round、clip以及向量范数计算hypot、linalg.norm。此外NumPy 还提供双曲函数sinh、tanh、数值稳定函数log1p、expm1以及常用数学常量pi、e、inf、nan。这些函数均采用向量化实现可对整个数组进行高效计算是科学计算、机器学习与数据分析中的基础工具。“点赞有美意赞赏是鼓励”