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

server/2025/2/5 16:49:31/

目录

前言

一、三角函数

二、双曲函数

三、数值修约

四、 求和、求积与差分

五、 指数与对数

六、算术运算

七、 矩阵与向量运算

八、代数运算

九、 其他数学工具

总结


前言

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/server/165185.html

相关文章

低代码产品插件功能一览

下图是统计的目前市面上流行的低代码、零代码产品的插件功能。 产品名称 产品类型 官方插件数量 支持拓展 官方插件功能 宜搭 零代码 3 暂不支持 云打印、CAD看图、打印表单详情 微搭 低代码 1 暂不支持 小程序 明道云 低代码 2 支持 视图、工作流节点 简道…

《大语言模型》综述学习笔记

《A Survey of Large Language Models》英文版综述最近出了中文版书——《大语言模型》,本博客作为阅读笔记记录一下,综述主页:https://github.com/RUCAIBox/LLMSurvey 关于LLM的一些概述和理解 记录一些有启发性的说法: 1、当前…

Linux网络 | 进入数据链路层,学习相关协议与概念

前言:本节内容进入博主讲解的网络层级中的最后一层:数据链路层。 首先博主还是会线代友友们认识一下数据链路层的报文。 然后会带大家重新理解一些概念,比如局域网交换机等等。然后就是ARP协议。 讲完这些, 本节任务就算结束。 那…

【基于SprintBoot+Mybatis+Mysql】电脑商城项目之用户登录

🧸安清h:个人主页 🎥个人专栏:【Spring篇】【计算机网络】【Mybatis篇】 🚦作者简介:一个有趣爱睡觉的intp,期待和更多人分享自己所学知识的真诚大学生。 目录 🎯1.登录-持久层 &…

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】3.1 NumPy图像大小调整实战

3.1 NumPy图像大小调整实战 目录 #mermaid-svg-uDg4hyooC74c0r2r {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-uDg4hyooC74c0r2r .error-icon{fill:#552222;}#mermaid-svg-uDg4hyooC74c0r2r .error-text{fill:#5…

C++【iostream】数据库的部分函数功能介绍

在 C 编程世界中,iostream 库扮演着举足轻重的角色,它是 C 标准库的核心组成部分,为程序提供了强大的输入输出功能。无论是简单的控制台交互,还是复杂的文件操作,iostream 库都能提供便捷高效的解决方案。本文将深入剖…

Docker小游戏 | 使用Docker部署跳一跳经典小游戏

Docker小游戏 | 使用Docker部署跳一跳经典小游戏 前言一、项目介绍项目简介项目预览二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、创建httpd容器下载镜像创建容器检查容器状态检查服务端口四、部署小游戏项目拉取项目源码重启容器安全设置五、访问跳一跳经典…

MYSQL--一条SQL执行的流程,分析MYSQL的架构

文章目录 第一步建立连接第二部解析 SQL第三步执行 sql预处理优化阶段执行阶段索引下推 执行一条select 语句中间会发生什么? 这个是对 mysql 架构的深入理解。 select * from product where id 1;对于mysql的架构分层: mysql 架构分成了 Server 层和存储引擎层&a…