当前位置: 首页 > news >正文

【Python】一文向您详细介绍 np.inner()

【Python】一文向您详细介绍 np.inner()


 
下滑即可查看博客内容
在这里插入图片描述

🌈 欢迎莅临我的个人主页 👈这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地!🎇

🎓 博主简介985高校的普通本硕,曾有幸发表过人工智能领域的 中科院顶刊一作论文,熟练掌握PyTorch框架

🔧 技术专长: 在CVNLP多模态等领域有丰富的项目实战经验。已累计提供近千次定制化产品服务,助力用户少走弯路、提高效率,近一年好评率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


🧠二、理解点积的意义

点积不仅仅是一个数学运算,它还具有深刻的几何和物理意义。在几何上,两个向量的点积等于它们的模长与它们之间夹角的余弦的乘积。即,如果ab是两个向量,那么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作为这一领域的基石,其提供的各种函数和工具将继续发挥重要作用。然而,随着新技术和新库的出现,我们也应该保持对新兴工具和方法的关注,以便在适当的时候采用它们来优化我们的解决方案。

http://www.lryc.cn/news/395834.html

相关文章:

  • pdf分割,这几款软件轻松搞定PDF拆分
  • 【吊打面试官系列-MyBatis面试题】什么是 MyBatis 的接口绑定?有哪些实现方式?
  • 实时消息推送系统,写得太好了!
  • 泛微E9开发 控制日期浏览按钮的可选日期范围
  • ppt接单渠道大公开‼️
  • 从零开始搭建vite开发环境
  • FastAPI本身是一个高性能的Web框架
  • yolov7:训练自己的数据集和测试
  • Redis 集群模式
  • 如何快速实现一个无缝轮播效果
  • kubernetes集群证书过期问题解决
  • PHP框架详解-symfony框架
  • Linux--线程的控制
  • 大数据------JavaWeb------会话跟踪技术(Cookie、Session)(完整知识点汇总)
  • crossJoin笛卡尔积
  • Java客户端调用SOAP方式的WebService服务实现方式分析
  • 华为机试真题--字符串序列判定
  • Linux内核 -- 虚拟化之virtqueue结构
  • 【pytorch18】Logistic Regression
  • PostgreSQL的使用
  • python 高级技巧 0706
  • 面试经典 106. 从中序与后序遍历序列构造二叉树
  • 如何解决群晖Docker注册表查询失败/无法拉取镜像等问题
  • 【Scrapy】 深入了解 Scrapy 中间件中的 process_spider_input 方法
  • 数据库MySQL---基础篇
  • 欧姆龙安全PLC及周边产品要点指南
  • tableau气泡图与词云图绘制 - 8
  • C语言 找出一个二维数组中的鞍点
  • 【笔记】在linux中设置错文件如何重置
  • DNS中的CNAME与A记录:为什么无法共存A解析和C解析?