机器学习常用包numpy篇(四)函数运算

ops/2025/2/6 17:53:03/

目录

前言

一、三角函数

二、双曲函数

三、数值修约

四、 求和、求积与差分

五、 指数与对数

六、算术运算

七、 矩阵与向量运算

八、代数运算

九、 其他数学工具

总结


前言

Python 的原生运算符可实现基础数学运算(加减乘除、取余、取整、幂运算),结合 math 模块可扩展常用功能(绝对值、阶乘、平方根等)。但对于复杂数值计算场景,这些工具仍有局限。而NumPy 提供了更丰富的数学函数库,能够高效处理多维数据与高级数学运算需求。

一、三角函数

1.核心功能

  • sincostan:计算正弦、余弦、正切。

  • arcsinarccosarctan:计算反三角函数。

  • hypot(x1, x2):直角三角形的斜边计算 = sqrt(x12+x22​​)。   

2.弧度与角度转换

  • degrees(x)rad2deg(x):弧度转角度。
  • radians(x)deg2rad(x):角度转弧度。

代码一览:

numpy.sin(x)#三角正弦
numpy.cos(x)#三角余弦
numpy.tan(x)#三角正切
numpy.arcsin(x)#三角反正弦
numpy.arccos(x)#三角反余弦
numpy.arctan(x)#三角反正切
numpy.hypot(x1,x2)#直角三角形求斜边
numpy.degrees(x)#弧度转换为度
numpy.radians(x)#度转换为弧度
numpy.deg2rad(x)#度转换为弧度
numpy.rad2deg(x)#弧度转换为度

使用示例:

二、双曲函数

1.功能

  • sinhcoshtanh:计算双曲函数。

  • arcsinharccosharctanh:反双曲函数。

代码一览:

numpy.sinh(x)#双曲正弦
numpy.cosh(x)#双曲余弦
numpy.tanh(x)#双曲正切
numpy.arcsinh(x)#反双曲正弦
numpy.arccosh(x)#反双曲余弦
numpy.arctanh(x)#反双曲正切

三、数值修约

1.核心方法

  • around(a):四舍五入到指定小数位。

  • rint(x):就近取整(与四舍五入规则不同)。

  • fix(x):向零方向取整(如 3.7 → 3,-2.1 → -2)。

  • floor(x):向下取整(最大整数 ≤ x)。

  • ceil(x):向上取整(最小整数 ≥ x)。

  • trunc(x):截断小数部分(等价于 fix)。

代码一览:

numpy.around(a)#平均到给定的小数位数。
numpy.round_(a)#将数组舍入到给定的小数位数。
numpy.rint(x)#修约到最接近的整数。
numpy.fix(x, y)#向 0 舍入到最接近的整数。
numpy.floor(x)#返回输入的底部(标量 x 的底部是最大的整数 i)。
numpy.ceil(x)#返回输入的上限(标量 x 的底部是最小的整数 i).
numpy.trunc(x)#返回输入的截断值。

四、 求和、求积与差分

1.关键函数

  • 累计算sum(a)prod(a)(总和与乘积)。

  • 累积操作cumsum(a)cumprod(a)(累加和累乘)。

  • 处理 NaNnansumnanprod(忽略 NaN 值)。

  • 差分diff(a)(计算相邻元素差)。

代码一览:

numpy.prod(a, axis, dtype, keepdims)#返回指定轴上的数组元素的乘积。
numpy.sum(a, axis, dtype, keepdims)#返回指定轴上的数组元素的总和。
numpy.nanprod(a, axis, dtype, keepdims)#返回指定轴上的数组元素的乘积, 将 NaN 视作 1。
numpy.nansum(a, axis, dtype, keepdims)#返回指定轴上的数组元素的总和, 将 NaN 视作 0。
numpy.cumprod(a, axis, dtype)#返回沿给定轴的元素的累积乘积。
numpy.cumsum(a, axis, dtype)#返回沿给定轴的元素的累积总和。
numpy.nancumprod(a, axis, dtype)#返回沿给定轴的元素的累积乘积, 将 NaN 视作 1。
numpy.nancumsum(a, axis, dtype)#返回沿给定轴的元素的累积总和, 将 NaN 视作 0。
numpy.diff(a, n, axis)#计算沿指定轴的第 n 个离散差分。
numpy.ediff1d(ary, to_end, to_begin)#数组的连续元素之间的差异。
numpy.gradient(f)#返回 N 维数组的梯度。
numpy.cross(a, b, axisa, axisb, axisc, axis)#返回两个(数组)向量的叉积。
numpy.trapz(y, x, dx, axis)#使用复合梯形规则沿给定轴积分。

五、 指数与对数

1.常用方法

  • exp(x):计算 e的x次方。

  • log(x)log10(x)log2(x):自然对数、以10或者2为底的对数。

numpy.exp(x)#计算输入数组中所有元素的指数。
numpy.log(x)#计算自然对数。
numpy.log10(x)#计算常用对数。
numpy.log2(x)#计算二进制对数。

六、算术运算

1.元素级操作

  • add(x1, x2):加法。

  • multiply(x1, x2):乘法。

  • power(x1, x2):幂运算(x1x2x1x2​​)。

  • mod(x1, x2):取余。

代码一览:

numpy.add(x1, x2)  # 对应元素相加
numpy.reciprocal(x)  # 求倒数 1/x
numpy.negative(x)  # 求对应负数
numpy.multiply(x1, x2)  # 求解乘法
numpy.divide(x1, x2)  # 相除 x1/x2
numpy.power(x1, x2)  # 类似于 x1^x2
numpy.subtract(x1, x2)  # 减法
numpy.fmod(x1, x2)  # 返回除法的元素余项
numpy.mod(x1, x2)  # 返回余项
numpy.modf(x1)  # 返回数组的小数和整数部分
numpy.remainder(x1, x2)  # 返回除法余数

七、 矩阵与向量运算

1.核心功能

  • 点积dot(a, b)(支持向量、矩阵乘法)。

  • 矩阵乘法matmul(a, b)(专用于矩阵)。

  • 外积outer(a, b)

  • 张量运算tensordot(a, b)

代码一览:

numpy.dot(a, b)  # 求解两个数组的点积
numpy.vdot(a, b)  # 求解两个向量的点积
numpy.inner(a, b)  # 求解两个数组的内积
numpy.outer(a, b)  # 求解两个向量的外积
numpy.matmul(a, b)  # 求解两个数组的矩阵乘积
numpy.tensordot(a, b)  # 求解张量点积
numpy.kron(a, b)  # 计算 Kronecker 乘积

八、代数运算

1.线性代数工具

  • 分解linalg.cholesky(Cholesky分解)、linalg.svd(奇异值分解)。

  • 特征值linalg.eig(a)(特征值与特征向量)。

  • 行列式linalg.det(a)

  • 逆矩阵linalg.inv(a)

  • 最小二乘解linalg.lstsq(a, b)

代码一览:

numpy.linalg.cholesky(a)#Cholesky 分解。
numpy.linalg.qr(a ,mode)#计算矩阵的 QR 因式分解。
numpy.linalg.svd(a ,full_matrices,compute_uv)#奇异值分解。
numpy.linalg.eig(a)#计算正方形数组的特征值和右特征向量。
numpy.linalg.eigh(a, UPLO)#返回 Hermitian 或对称矩阵的特征值和特征向量。
numpy.linalg.eigvals(a)#计算矩阵的特征值。
numpy.linalg.eigvalsh(a, UPLO)#计算 Hermitian 或真实对称矩阵的特征值。
numpy.linalg.norm(x ,ord,axis,keepdims)#计算矩阵或向量范数。
numpy.linalg.cond(x ,p)#计算矩阵的条件数。
numpy.linalg.det(a)#计算数组的行列式。
numpy.linalg.matrix_rank(M ,tol)#使用奇异值分解方法返回秩。
numpy.linalg.slogdet(a)#计算数组的行列式的符号和自然对数。
numpy.trace(a ,offset,axis1,axis2,dtype,out)#沿数组的对角线返回总和。
numpy.linalg.solve(a, b)#求解线性矩阵方程或线性标量方程组。
numpy.linalg.tensorsolve(a, b ,axes)#为 x 解出张量方程 a x = b
numpy.linalg.lstsq(a, b ,rcond)#将最小二乘解返回到线性矩阵方程。
numpy.linalg.inv(a)#计算逆矩阵。
numpy.linalg.pinv(a ,rcond)#计算矩阵的(Moore - Penrose)伪逆。
numpy.linalg.tensorinv(a ,ind)#计算 N 维数组的逆。

九、 其他数学工具

  • 复数处理real(z)imag(z)(实部与虚部)。

  • 统计计算maximumminimum(最值)。

  • 插值与梯度interp(线性插值)、gradient(数值梯度)。

代码一览:

numpy.angle(z, deg)#返回复参数的角度。
numpy.real(val)#返回数组元素的实部。
numpy.imag(val)#返回数组元素的虚部。
numpy.conj(x)#按元素方式返回共轭复数。
numpy.convolve(a, v, mode)#返回线性卷积。
numpy.sqrt(x)#平方根。
numpy.cbrt(x)#立方根。
numpy.square(x)#平方。
numpy.absolute(x)#绝对值, 可求解复数。
numpy.fabs(x)#绝对值。
numpy.sign(x)#符号函数。
numpy.maximum(x1, x2)#最大值。
numpy.minimum(x1, x2)#最小值。
numpy.nan_to_num(x)#用 0 替换 NaN。
numpy.interp(x, xp, fp, left, right, period)#线性插值。

总结

NumPy 提供了覆盖基础数学到高级线性代数的完整工具集:

  • 基础运算:三角函数、数值修约、求和求积。

  • 复杂计算:矩阵乘法、特征值分解、张量运算。

  • 工程应用:插值、梯度计算、最小二乘解。


http://www.ppmy.cn/ops/156206.html

相关文章

Mac本地部署DeekSeek-R1下载太慢怎么办?

Ubuntu 24 本地安装DeekSeek-R1 在命令行先安装ollama curl -fsSL https://ollama.com/install.sh | sh 下载太慢,使用讯雷,mac版下载链接 https://ollama.com/download/Ollama-darwin.zip 进入网站 deepseek-r1:8b,看内存大小4G就8B模型 …

Python爬虫实战:一键采集电商数据,掌握市场动态!

电商数据分析是个香饽饽,可市面上的数据采集工具要不贵得吓人,要不就是各种广告弹窗。干脆自己动手写个爬虫,想抓啥抓啥,还能学点技术。今天咱聊聊怎么用Python写个简单的电商数据爬虫。 打好基础:搞定请求头 别看爬虫…

【3分钟极速部署】在本地快速部署deepseek

第一步,找到网站,下载: 首先找到Ollama , 根据自己的电脑下载对应的版本 。 我个人用的是Windows 我就先尝试用Windows版本了 ,文件不是很大,下载也比较的快 第二部就是安装了 : 安装完成后提示…

FPGA学习篇——Verilog学习1

1 数电基础知识(后续可能还会继续补充) 1.1 逻辑电平 这张图比较重要以及陌生的应该是高阻态Z,他是一个未知值,不一定为高也不一定为低电平,X是只能高电平和低电平中二选一。 1.2 进制 进制有常见的二进制&#xff0…

第一性原理:游戏开发成本的思考

利润 营收-成本 营收定价x销量x分成比例 销量 曝光量x 点击率x (购买率- 退款率) 分成比例 100%- 平台抽成- 税- 引擎费- 发行抽成 成本开发成本运营成本 开发成本 人工外包办公地点租金水电设备折旧 人工成本设计成本开发成本迭代修改成本后续内容…

OpenCV:特征检测总结

目录 一、什么是特征检测? 二、OpenCV 中的常见特征检测方法 1. Harris 角点检测 2. Shi-Tomasi 角点检测 3. Canny 边缘检测 4. SIFT(尺度不变特征变换) 5. ORB 三、特征检测的应用场景 1. 图像匹配 2. 运动检测 3. 自动驾驶 4.…

汇编知识点汇总

汇编的组成 汇编指令 数据处理指令 数据搬移指令数据位移指令位运算指令算术运算指令比较指令 跳转指令内存读写指令状态寄存器传送指令异常产生指令协处理器指令 伪操作 在程序编译过程中起到编译引导作用的内容 .text .global .if .else .endif 伪指令 不是汇编指令&…

jdk8 G1收集器怎么手动调优

在 JDK 8 中,手动调优 G1 垃圾收集器可以通过以下步骤和参数进行: 1. 启用 G1 垃圾收集器 要启用 G1 垃圾收集器,需要在 JVM 启动参数中添加以下选项: -XX:UseG1GC 这个参数告诉 JVM 使用 G1 作为垃圾收集器。 2. 设置堆内存…