机器学习常用包numpy篇(四)函数运算
目录
前言
一、三角函数
二、双曲函数
三、数值修约
四、 求和、求积与差分
五、 指数与对数
六、算术运算
七、 矩阵与向量运算
八、代数运算
九、 其他数学工具
总结
前言
Python 的原生运算符可实现基础数学运算(加减乘除、取余、取整、幂运算),结合 math 模块可扩展常用功能(绝对值、阶乘、平方根等)。但对于复杂数值计算场景,这些工具仍有局限。而NumPy 提供了更丰富的数学函数库,能够高效处理多维数据与高级数学运算需求。
一、三角函数
1.核心功能:
-
sin,cos,tan:计算正弦、余弦、正切。 -
arcsin,arccos,arctan:计算反三角函数。 -
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.功能:
-
sinh,cosh,tanh:计算双曲函数。 -
arcsinh,arccosh,arctanh:反双曲函数。
代码一览:
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)(累加和累乘)。 -
处理 NaN:
nansum,nanprod(忽略 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)(实部与虚部)。 -
统计计算:
maximum,minimum(最值)。 -
插值与梯度:
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 提供了覆盖基础数学到高级线性代数的完整工具集:
-
基础运算:三角函数、数值修约、求和求积。
-
复杂计算:矩阵乘法、特征值分解、张量运算。
-
工程应用:插值、梯度计算、最小二乘解。
相关文章:
机器学习常用包numpy篇(四)函数运算
目录 前言 一、三角函数 二、双曲函数 三、数值修约 四、 求和、求积与差分 五、 指数与对数 六、算术运算 七、 矩阵与向量运算 八、代数运算 九、 其他数学工具 总结 前言 Python 的原生运算符可实现基础数学运算(加减乘除、取余、取整、幂运算&#…...
CSS in JS
css in js css in js 的核心思想是:用一个 JS 对象来描述样式,而不是 css 样式表。 例如下面的对象就是一个用于描述样式的对象: const styles {backgroundColor: "#f40",color: "#fff",width: "400px",he…...
TCP 丢包恢复策略:代价权衡与优化迷局
网络物理层丢包是一种需要偿还的债务,可以容忍低劣的传输质量,这为 UDP 类服务提供了空间,而对于 TCP 类服务,可以用另外两类代价来支付: 主机端采用轻率的 GBN 策略恢复丢包,节省 CPU 资源,但…...
面经--C语言——内存泄漏、malloc和new的区别 .c文件怎么转换为可执行程序 uart和usart的区别 继承的访问权限总结
文章目录 内存泄漏预防内存泄漏的方法: malloc和new的区别.c文件怎么转换为可执行程序uart和usart的区别继承的访问权限总结访问控制符总结1. **public**:2. **protected**:3. **private**:继承类型: 内存泄漏 内存泄漏是指程序在运行时动态分配内存后&…...
Denavit-Hartenberg DH MDH坐标系
Denavit-Hartenberg坐标系及其规则详解 6轴协作机器人的MDH模型详细图_6轴mdh-CSDN博客 N轴机械臂的MDH正向建模,及python算法_mdh建模-CSDN博客 运动学3-----正向运动学 | 鱼香ROS 机器人学:MDH建模 - 哆啦美 - 博客园 机械臂学习——标准DH法和改进MDH…...
力扣动态规划-20【算法学习day.114】
前言 ###我做这类文章一个重要的目的还是记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!! 习题 1.网格中的最小路径代价 题目链接…...
计算机视觉-边缘检测
一、边缘 1.1 边缘的类型 ①实体上的边缘 ②深度上的边缘 ③符号的边缘 ④阴影产生的边缘 不同任务关注的边缘不一样 1.2 提取边缘 突变-求导(求导也是一种卷积) 近似,1(右边的一个值-自己可以用卷积做) 该点f(x,y)…...
文字加持:让 OpenCV 轻松在图像中插上文字
前言 在很多图像处理任务中,我们不仅需要提取图像信息,还希望在图像上加上一些文字,或是标注,或是动态展示。正如在一幅画上添加一个标语,或者在一个视频上加上动态字幕,cv2.putText 就是这个“文字魔术师”,它能让我们的图像从“沉默寡言”变得生动有趣。 今天,我们…...
掌握 HTML5 多媒体标签:如何在所有浏览器中顺利嵌入视频与音频
系列文章目录 01-从零开始学 HTML:构建网页的基本框架与技巧 02-HTML常见文本标签解析:从基础到进阶的全面指南 03-HTML从入门到精通:链接与图像标签全解析 04-HTML 列表标签全解析:无序与有序列表的深度应用 05-HTML表格标签全面…...
在Mac mini M4上部署DeepSeek R1本地大模型
在Mac mini M4上部署DeepSeek R1本地大模型 安装ollama 本地部署,我们可以通过Ollama来进行安装 Ollama 官方版:【点击前往】 Web UI 控制端【点击安装】 如何在MacOS上更换Ollama的模型位置 默认安装时,OLLAMA_MODELS 位置在"~/.o…...
【电脑系统】电脑突然(蓝屏)卡死发出刺耳声音
文章目录 前言问题描述软件解决方案尝试硬件解决方案尝试参考文献 前言 在 更换硬盘 时遇到的问题,有时候只有卡死没有蓝屏 问题描述 更换硬盘后,电脑用一会就卡死,蓝屏,显示蓝屏代码 UNEXPECTED_STORE_EXCEPTION 软件解决方案…...
Docker使用指南(二)——容器相关操作详解(实战案例教学,创建/使用/停止/删除)
目录 1.容器操作相关命令编辑 案例一: 案例二: 容器常用命令总结: 1.查看容器状态: 2.删除容器: 3.进入容器: 二、Docker基本操作——容器篇 1.容器操作相关命令 下面我们用两个案例来具体实操一…...
Java中的常见对象类型解析
在Java开发中,数据的组织和传递是一个重要的概念。为了确保代码的清晰性、可维护性和可扩展性,我们通常会根据不同的用途,设计和使用不同类型的对象。这些对象的作用各不相同,但它们共同为构建高效、模块化的软件架构提供支持。 …...
Dijkstra算法解析
Dijkstra算法,用于求解图中从一个起点到其他所有节点的最短路径。解决单源最短路径问题的有效方法。 条件 有向 带权路径 时间复杂度 O(n平方) 方法步骤 1 把图上的点分为两个集合 要求的起点 和除了起点之外的点 。能直达的写上权值 不…...
C++ Primer 多维数组
欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…...
maven mysql jdk nvm node npm 环境安装
安装JDK 1.8 11 环境 maven环境安装 打开网站 下载 下载zip格式 解压 自己创建一个maven库 以后在idea 使用maven时候重新设置一下 这三个地方分别设置 这时候maven才算设置好 nvm 管理 npm nodejs nvm下载 安装 Releases coreybutler/nvm-windows GitHub 一键安装且若有…...
SQL Server中RANK()函数:处理并列排名与自然跳号
RANK()是SQL Server的窗口函数,为结果集中的行生成排名。当出现相同值时,后续排名会跳过被占用的名次,形成自然间隔。与DENSE_RANK()的关键区别在于是否允许排名值连续。 语法: RANK() OVER ([PARTITION BY 分组列]ORDER BY 排序…...
如何运行Composer安装PHP包 安装JWT库
1. 使用Composer Composer是PHP的依赖管理工具,它允许你轻松地安装和管理PHP包。对于JWT,你可以使用firebase/php-jwt这个库,这是由Firebase提供的官方库。 安装Composer(如果你还没有安装的话): 访问Co…...
最新功能发布!AllData数据中台核心菜单汇总
🔥🔥 AllData大数据产品是可定义数据中台,以数据平台为底座,以数据中台为桥梁,以机器学习平台为中层框架,以大模型应用为上游产品,提供全链路数字化解决方案。 ✨奥零数据科技官网:http://www.aolingdata.com ✨AllData开源项目:https://github.com/alldatacenter/…...
【OS】AUTOSAR架构下的Interrupt详解(上篇)
目录 前言 正文 1.中断概念分析 1.1 中断处理API 1.2 中断级别 1.3 中断向量表 1.4 二类中断的嵌套 1.4.1概述 1.4.2激活 1.5一类中断 1.5.1一类中断的实现 1.5.2一类中断的嵌套 1.5.3在StartOS之前的1类ISR 1.5.4使用1类中断时的注意事项 1.6中断源的初始化 1.…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程
STM32F1 本教程使用零知标准板(STM32F103RBT6)通过I2C驱动ICM20948九轴传感器,实现姿态解算,并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化,适合嵌入式及物联网开发者。在基础驱动上新增…...
实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
aardio 自动识别验证码输入
技术尝试 上周在发学习日志时有网友提议“在网页上识别验证码”,于是尝试整合图像识别与网页自动化技术,完成了这套模拟登录流程。核心思路是:截图验证码→OCR识别→自动填充表单→提交并验证结果。 代码在这里 import soImage; import we…...
相关类相关的可视化图像总结
目录 一、散点图 二、气泡图 三、相关图 四、热力图 五、二维密度图 六、多模态二维密度图 七、雷达图 八、桑基图 九、总结 一、散点图 特点 通过点的位置展示两个连续变量之间的关系,可直观判断线性相关、非线性相关或无相关关系,点的分布密…...
