【Python】一文向您详细介绍 np.inner()
【Python】一文向您详细介绍 np.inner()
下滑即可查看博客内容

🌈 欢迎莅临我的个人主页 👈这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地!🎇
🎓 博主简介:985高校的普通本硕,曾有幸发表过人工智能领域的 中科院顶刊一作论文,熟练掌握PyTorch框架。
🔧 技术专长: 在CV、NLP及多模态等领域有丰富的项目实战经验。已累计提供近千次定制化产品服务,助力用户少走弯路、提高效率,近一年好评率100% 。
📝 博客风采: 积极分享关于深度学习、PyTorch、Python相关的实用内容。已发表原创文章600余篇,代码分享次数逾九万次。
💡 服务项目:包括但不限于科研辅导、知识付费咨询以及为用户需求提供定制化解决方案。
🌵文章目录🌵
- 🔍一、初识`np.inner()`
- 示例代码
- 🧠二、理解点积的意义
- 示例:计算向量夹角
- 🔧三、`np.inner()`与`np.dot()`的区别
- np.dot() 示例
- 🎯四、`np.inner()`的实际应用
- 示例:计算向量间的相似度
- 🎯五、`np.inner()`在特征工程中的应用
- 🚀六、总结与展望
下滑即可查看博客内容
🔍一、初识np.inner()
在Python的NumPy库中,np.inner()函数是一个用于计算两个数组的点积(inner product)的函数。尽管其名字暗示了内部(inner)的某种特性,但实际上它主要用于一维数组(向量)的点积计算。点积,又称标量积或内积,是线性代数中的一个基本概念,其结果是一个标量(即一个单一的数)。
示例代码
import numpy as np# 定义两个一维数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])# 计算a和b的点积
inner_product = np.inner(a, b)
print(f"The inner product of a and b is: {inner_product}")
输出结果将会是32,因为1*4 + 2*5 + 3*6 = 32。
🧠二、理解点积的意义
点积不仅仅是一个数学运算,它还具有深刻的几何和物理意义。在几何上,两个向量的点积等于它们的模长与它们之间夹角的余弦的乘积。即,如果a和b是两个向量,那么a·b = |a| * |b| * cos(θ),其中θ是两向量之间的夹角。
- 当两向量方向相同时(夹角为0度),点积最大,为两向量模的乘积。
- 当两向量垂直时(夹角为90度),点积为0。
- 当两向量方向相反时(夹角为180度),点积为负,其绝对值等于两向量模的乘积。
示例:计算向量夹角
# 已知两向量的点积和模长,计算夹角
a_norm = np.linalg.norm(a)
b_norm = np.linalg.norm(b)
theta = np.arccos(np.inner(a, b) / (a_norm * b_norm))
print(f"The angle between a and b is: {np.degrees(theta):.2f} degrees")
这将输出两向量之间的夹角(以度为单位)。
🔧三、np.inner()与np.dot()的区别
在NumPy中,另一个经常用于点积计算的函数是np.dot()。然而,np.dot()和np.inner()在处理不同维度数组时的行为有所不同。
- 对于两个一维数组(向量),
np.inner()和np.dot()的结果是相同的,都计算点积。 - 对于二维数组(矩阵),
np.dot()执行矩阵乘法,而np.inner()在NumPy中对于二维数组的行为并不直观,因为它主要用于一维数组的点积计算。
np.dot() 示例
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])# 使用np.dot()进行矩阵乘法
dot_product = np.dot(A, B)
print("Matrix multiplication using np.dot():\n", dot_product)
🎯四、np.inner()的实际应用
点积在机器学习、物理学、工程学等多个领域都有广泛的应用。
- 机器学习:在特征向量空间中,点积可用于计算两个数据点之间的相似度或距离。
- 物理学:在力学中,力向量与位移向量的点积给出了功的计算。
- 工程学:在信号处理中,点积可用于计算信号之间的相关性。
示例:计算向量间的相似度
# 假设有两个特征向量
v1 = np.array([1, 2, 3])
v2 = np.array([4, 5, 6])# 计算点积
dot_product = np.inner(v1, v2)# 计算两个向量的模
norm_v1 = np.linalg.norm(v1)
norm_v2 = np.linalg.norm(v2)# 使用点积和模的乘积来计算余弦相似度
cos_sim = dot_product / (norm_v1 * norm_v2)
print(f"Cosine similarity between v1 and v2: {cos_sim}")
在这个例子中,余弦相似度越接近1,表示两个向量在方向上越接近;如果为0,则表示两向量正交(即垂直);如果为负值,则表示两向量方向相反。
🎯五、np.inner()在特征工程中的应用
在机器学习领域,特征工程是一个关键步骤,它涉及从原始数据中提取有用的特征以供模型训练。np.inner()可以用于特征之间的交互,创建新的特征,这些新特征可能包含有关数据集的更多信息。
🚀六、总结与展望
通过本文,我们深入探讨了NumPy库中的np.inner()函数,从基础概念到实际应用。我们了解到np.inner()主要用于计算一维数组的点积,并探讨了它在不同领域的应用,如机器学习中的相似度计算和特征工程。
未来,随着数据科学和机器学习领域的不断发展,对高效、灵活且强大的数组操作工具的需求将日益增长。NumPy作为这一领域的基石,其提供的各种函数和工具将继续发挥重要作用。然而,随着新技术和新库的出现,我们也应该保持对新兴工具和方法的关注,以便在适当的时候采用它们来优化我们的解决方案。
相关文章:
【Python】一文向您详细介绍 np.inner()
【Python】一文向您详细介绍 np.inner() 下滑即可查看博客内容 🌈 欢迎莅临我的个人主页 👈这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地!🎇 🎓 博主简介:985高校的普通本硕,曾…...
pdf分割,这几款软件轻松搞定PDF拆分
在数字化办公日益普及的今天,PDF文件因其跨平台、不易修改的特性,成为了我们日常工作中不可或缺的一部分。然而,面对庞大的PDF文件,如何高效、准确地将其分割成多个小文件,以便更好地管理和使用,成为了许多…...
【吊打面试官系列-MyBatis面试题】什么是 MyBatis 的接口绑定?有哪些实现方式?
大家好,我是锋哥。今天分享关于 【什么是 MyBatis 的接口绑定?有哪些实现方式?】面试题,希望对大家有帮助; 什么是 MyBatis 的接口绑定?有哪些实现方式? 接口绑定,就是在 MyBatis 中…...
实时消息推送系统,写得太好了!
websocket 协议是在 http 协议上的一种补充协议,是 html5 的新特性,是一种持久化的协议。其实 websocket 和 http 关系并不是很大,不过都是属于应用层的协议,接下来我们就开始实战。 websocket 定时推送 本教程基于 springboot …...
泛微E9开发 控制日期浏览按钮的可选日期范围
控制日期浏览按钮的可选日期范围 1、需求说明2、实现方法3、扩展知识点控制日期浏览按钮的可选日期范围格式参数说明演示 1、需求说明 控制日期浏览按钮的可选日期范围为2024/07/01~2024/07/31,如下图所示 2. 控制日期浏览按钮的可选日期范围在当前时间的前一周~当…...
ppt接单渠道大公开‼️
PPT 接单主要分两种:PPT 模板投稿和PPT 定制接单,我们先从简单的 PPT 模板投稿说起。 PPT 模板投稿 利用业余时间,做一些 PPT 模板上传到平台,只要有人下载你的模板,你就有收入。如果模板质量高,简直就是一…...
从零开始搭建vite开发环境
准备 nodejs 18 pnpm https://vitejs.cn/ 开始 pnpm init pnpm add -D vite新建index.html <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width…...
FastAPI本身是一个高性能的Web框架
FastAPI本身是一个高性能的Web框架,它并不直接支持数据库操作,但可以通过集成各种数据库库来与各种数据库进行交互。FastAPI支持几乎所有的关系型数据库和非关系型数据库,这主要取决于你选择的数据库库(如ORM库)以及相…...
yolov7:训练自己的数据集和测试
1、源代码:DataXujing/YOLOv7: :fire::fire::fire: Official YOLOv7训练自己的数据集并实现端到端的TensorRT模型加速推断 (github.com)2、参考的文献:⭐YOLOv7训练自己的数据集(全网最详细 亲测有效)⭐_python_Sunny&Meng-开…...
Redis 集群模式
文章目录 前言1. Redis Cluster 搭建1.1 准备节点1.2 准备配置文件1.3 查看集群状态 2. 客户端访问3. Python 连接集群4. Redis 集群维护4.1 新增节点4.2 手动分配 slot4.3 节点移除 5. 集群运维5.1 集群倾斜5.2 手动切换 前言 Redis 3.0 提供了 Redis Cluster 架构࿰…...
如何快速实现一个无缝轮播效果
🧑💻 写在开头 点赞 收藏 学会🤣🤣🤣 需求简介 轮播图是我们前端开发中的一个常见需求,在项目开发中,我们可以使用element、ant等UI库实现。某些场景,为了一个简单的功能安装一…...
kubernetes集群证书过期问题解决
kubernetes集群证书过期问题解决 问题描述检查证书是否过期更新证书master节点操作node节点操作 问题描述 K8S 各个组件需要与 api-server 进行通信,通信使用的证书都存放在 /etc/kubernetes/pki 路径下,kubeadm 生成的证书大部分默认有效期为 1 年&…...
PHP框架详解-symfony框架
Symfony是一个使用PHP语言编写的开源Web应用框架,旨在加快开发进程,替代重复编码工作,并帮助构建可维护和可扩展的应用程序。以下是对Symfony框架的详细解析: 一、框架概述 Symfony提供了一组可重用的组件和一个标准化、可扩展的…...
Linux--线程的控制
目录 0.前言 1.pthread库 2.关于控制线程的接口 2.1.创建线程(pthread_create) 2.2.线程等待(pthread_join) 代码示例1: 编辑 ***一些问题*** 2. 3.创建多线程 3.线程的终止 (pthread_exit /…...
大数据------JavaWeb------会话跟踪技术(Cookie、Session)(完整知识点汇总)
会话跟踪技术(Cookie&Session) 注意: HTTP协议是无状态 的,即每次浏览器向服务器请求时,服务器都会将该请求视为新的请求,因此我们需要会话跟踪技术来实现会话内的数据共享 会话 当用户打开浏览器&am…...
crossJoin笛卡尔积
crossJoin笛卡尔积 在Spark中,crossJoin方法用于执行两个数据集之间的笛卡尔积操作。具体来说,如果有两个数据集(DataFrame或Dataset),调用crossJoin方法将会生成一个新的数据集,其中包含两个原始数据集中所…...
Java客户端调用SOAP方式的WebService服务实现方式分析
简介 在多系统交互中,有时候需要以Java作为客户端来调用SOAP方式的WebService服务,本文通过分析不同的调用方式,以Demo的形式,帮助读者在生产实践中选择合适的调用方式。 本文JDK环境为JDK17。 结论 推荐使用Axis2或者Jaxws&#…...
华为机试真题--字符串序列判定
题目描述: 输入两个字符串S和L,都只包含英文小写字母,其中S长度<=100,L长度<=500000,请判定S是否是L的有效字串。 判定规则: S中的每个字符在L中都能找到(可以不连续),且S在L中字符的前后顺序与S中顺序要保持一致。(例如,S="ace"是L="abcd…...
Linux内核 -- 虚拟化之virtqueue结构
Linux Kernel中的Virtqueue Virtqueue是Linux Kernel中用于实现Virtio设备的一个关键数据结构。Virtio是一种虚拟I/O设备标准,旨在简化虚拟化环境中虚拟设备与虚拟机之间的通信。Virtqueue则是实现这种通信的核心机制。以下是Virtqueue的一些关键点: V…...
【pytorch18】Logistic Regression
回忆线性回归 for continuous:y xwbfor probability output:yσ(xwb) σ:sigmoid or logistic 线性回归是简单的线性模型,输入是x,网络参数是w和b,输出是连续的y的值 如何把它转化为分类问题?加了sigmoid函数,输出的值不再是…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
