网易首页 > 网易号 > 正文 申请入驻

Python 线性代数 04:点积

0
分享至

点积是向量运算中最基础、最常用的运算之一。它将两个等长向量的对应分量相乘并求和,结果是一个标量。点积既可以表示一组数值的加权求和,也可以反映两个向量之间的方向关系。

在 Python 中,可以使用列表、循环、zip() 和 sum() 实现点积。对于两个等长的一维 NumPy 数组,还可以使用 np.dot() 或 @ 运算符计算点积。

一、什么是点积

1、点积的基本定义

点积(Dot Product)也称标量积(Scalar Product)。在实数向量空间中,它是标准内积(Inner Product)的一种具体形式。

设两个 n 维实向量为:

它们的点积定义为:

也可以写成求和形式:

点积的计算过程可以概括为:将两个向量对应位置的分量相乘,再将所有乘积相加,最终得到一个标量。

在标准坐标表示下,点积要求两个向量属于同一个 n 维实向量空间,因此具有相同数量的分量。

2、点积与逐元素乘法

设:

逐元素乘法得到一个向量:

点积则需要将这些乘积继续相加:

因此,逐元素乘法的结果仍是向量,点积的结果则是标量。

3、点积的手工计算示例

设两个三维向量为:

先计算对应位置分量的乘积:

再将三个乘积相加:

因此:

点积结果 −3 是一个标量,不再具有三个分量。

4、点积的基本性质

设 a、b、c 是同一实向量空间中的向量,k 是实数。

点积满足交换律:

对向量加法满足分配律:

与标量乘法满足:

向量与自身的点积等于其长度的平方:

只有零向量与自身的点积等于 0:

二、使用 Python 基本语法计算点积

1、使用循环计算

可以使用 Python 列表表示向量,并通过循环完成对应元素相乘与累加:

print(dot_product)

输出:

-3

变量 dot_product 从 0 开始,循环每执行一次,就将一组对应元素的乘积累加到已有结果中。

2、使用 zip() 和 sum()

zip() 可以将两个序列中相同位置的元素配对,生成式负责计算乘积,sum() 再对所有乘积求和:

print(dot_product)

输出:

-3

zip() 会在较短的序列结束时停止。因此,计算点积前仍应检查两个向量的长度是否相同。

三、使用 NumPy 计算点积

1、使用 np.dot() 和 @

对于两个长度相同的一维 NumPy 数组,可以使用 np.dot() 函数或 @ 运算符计算点积:

print(result_2)

输出:

-3

对于一维数组,np.dot(a, b) 和 a @ b 都会计算对应元素的乘积之和,得到相同的标量结果。

对于二维及更高维数组,np.dot() 与 @ 的规则会发生变化,不应再简单理解为两个向量的点积。相关规则将在矩阵乘法中进一步讨论。

2、点积结果的形状

上例中两个一维数组的形状都是 (3,)。点积结果是 NumPy 标量,其形状为 ():

print(np.shape(result))

输出:

()

形状 () 表示结果是零维标量,不是形状为 (1,) 的一维数组。

四、点积的几何意义

1、点积与向量长度

n 维实向量 a 的长度为:

由于向量与自身的点积为:

因此:

点积不仅可以用来定义向量的长度,也可以用来反映两个向量之间的方向关系。

2、点积与向量夹角

对于两个非零向量 a 和 b,设它们之间的夹角为 θ,则:

其中:

‖a‖ 表示向量 a 的长度;

‖b‖ 表示向量 b 的长度;

θ 表示两个向量之间的夹角。

由此可以得到夹角余弦:

这个公式将点积的代数计算与向量的几何方向联系起来。

3、点积的符号与方向关系

对于两个非零向量,‖a‖ 和 ‖b‖ 均大于 0,因此点积的符号由 cos θ 决定:

a·b > 0:两个向量的夹角为锐角;

a·b = 0:两个向量的夹角为直角,二者相互正交;

a·b < 0:两个向量的夹角为钝角。

例如:

计算点积:

因此,两个非零向量 a 和 b 相互正交。

对应的 Python 代码为:

print(result)

输出:

0

4、使用点积计算夹角

设:

先计算点积:

再计算两个向量的长度:

代入夹角公式:

因此:

使用 Python 计算:

print("夹角:", theta_degrees)

输出:

夹角: 45.0

要注意的是,零向量的长度为 0,没有确定方向。因此,当任意一个向量为零向量时,不能使用夹角公式。

五、扩展:复数向量的内积

对于实数向量,点积是对应分量乘积之和。对于复数向量,标准内积需要对其中一个向量取复共轭。

不同教材可能采用不同的记号约定。这里采用 NumPy np.vdot() 的规则,对第一个向量取复共轭:

其中,āᵢ 表示 aᵢ 的复共轭。

例如:

根据上述约定:

NumPy 可以使用 np.vdot() 完成这种运算:

print(result)

输出:

(5-5j)

np.vdot(a, b) 会先将输入展平,再对第一个输入取复共轭。

对于等长的实数一维数组,np.vdot()、np.dot() 和 @ 得到相同的数值结果;对于复数向量,三者的含义可能不同。

六、点积的典型应用

1、计算余弦相似度

点积结合向量长度,可以计算余弦相似度(Cosine Similarity),用于比较两个非零向量在方向上的接近程度:

NumPy 实现如下:

print(cosine_similarity)

输出可能为:

0.7999999999999998

结果约为 0.8,说明两个向量的方向比较接近,但并不完全相同。

余弦相似度常用于比较文本、图像和其他数据的嵌入向量。其取值范围、特殊情况和距离关系将在后续文章中进一步讨论。

2、表示加权求和

点积还可以表示一组输入数值的加权求和。

设输入向量为:

权重向量为:

加权求和为:

这正是两个向量的点积:

例如,设:

手工计算:

NumPy 实现为:

print(weighted_sum)

输出:

0.0

点积可以表示输入与权重的加权求和;多个输出的点积可以进一步合并为矩阵乘法。

七、常见问题及使用建议

1、确认向量长度和数组形状

使用 NumPy 计算向量点积时,应确认两个输入都是长度相同的一维数组。

对于二维及更高维数组,np.dot() 和 @ 的运算规则会发生变化,不能再简单理解为两个向量的点积。

2、区分逐元素乘法与点积

对于一维数组,* 表示逐元素乘法,@ 和 np.dot() 表示点积,不要混用。

3、零向量不能用于计算夹角

零向量与任意向量的点积都为 0,因此零向量与任意向量都满足正交的代数定义。

但是,零向量没有确定方向,不能据此认为它与其他向量的夹角为 90°,因为这一夹角没有定义。

4、注意浮点数误差

计算夹角或余弦相似度时,浮点误差可能使理论上属于 [−1, 1] 的余弦值略微超出该范围,例如:

1.0000000000000002

传入 np.arccos() 前,可以使用:

)

将数值限制在合法范围内,避免得到无效结果。

小结

点积将两个等长向量的对应分量相乘并求和,结果是标量。它可以表示向量长度、方向关系、余弦相似度和加权求和。Python 可使用循环、np.dot() 或 @ 实现点积;计算夹角时,还需注意零向量和浮点误差。


“点赞有美意,赞赏是鼓励”

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
郭斌发文阴阳王励勤,说乒协没打招呼就动了他那块地盘。 不是因为他说自己亏本经营替国乒兜底。

郭斌发文阴阳王励勤,说乒协没打招呼就动了他那块地盘。 不是因为他说自己亏本经营替国乒兜底。

乒乓网国球汇
2026-06-23 02:31:09
悲催!2026国庆档遇冷单日票房仅3958万,网友:史上最惨国庆档出现了,没想到最先熄火的是演员

悲催!2026国庆档遇冷单日票房仅3958万,网友:史上最惨国庆档出现了,没想到最先熄火的是演员

火山詩话
2026-10-02 19:48:03
剧版《哈利·波特》小演员近照曝光,脸型变窄下颌线清晰,网友直呼“天选哈利”

剧版《哈利·波特》小演员近照曝光,脸型变窄下颌线清晰,网友直呼“天选哈利”

娱乐嗑学家.
2026-10-02 15:52:44
12.8亿卖掉总统,卖掉工厂,卖掉国家,两年后两发子弹穿胸而过

12.8亿卖掉总统,卖掉工厂,卖掉国家,两年后两发子弹穿胸而过

墨策讲历史
2026-08-21 19:27:44
伊朗内部发生激烈交火!安全部队出动坦克控局,准将级指挥官阵亡

伊朗内部发生激烈交火!安全部队出动坦克控局,准将级指挥官阵亡

闻识
2026-10-01 11:37:44
不查不知道,一查吓一跳,坐拥上亿的刘亦菲,生活阔得超乎想象

不查不知道,一查吓一跳,坐拥上亿的刘亦菲,生活阔得超乎想象

史行途
2026-09-15 18:21:20
徐湖平上千件文物流失仅获刑三年:不是法外开恩,而是法条规定的边界

徐湖平上千件文物流失仅获刑三年:不是法外开恩,而是法条规定的边界

十为先生
2026-09-18 18:25:57
顶级营养师警告: 这些数百万人服用的澳洲保健品别再吃了! 会致癌!

顶级营养师警告: 这些数百万人服用的澳洲保健品别再吃了! 会致癌!

澳微Daily
2026-10-01 15:38:42
小马科斯全面清算杜特尔特家族!三子女齐齐陷入政坛风波

小马科斯全面清算杜特尔特家族!三子女齐齐陷入政坛风波

有范又有料
2026-10-03 00:33:21
我在东莞住宿,隔壁一对半路夫妻半夜总吵架,那天我偷看后傻眼了

我在东莞住宿,隔壁一对半路夫妻半夜总吵架,那天我偷看后傻眼了

温情邮局
2025-03-03 14:41:05
一个脱离现实的人,赵宏作为北大教授称职吗?她凭什么胡言乱语

一个脱离现实的人,赵宏作为北大教授称职吗?她凭什么胡言乱语

平老师666
2026-10-02 22:36:08
女多男少到底有多乱?1945年苏联女性比男性多出2200万,法律不仅不抓出轨,甚至男人在外面生了私生子,不用付一分钱抚养费!

女多男少到底有多乱?1945年苏联女性比男性多出2200万,法律不仅不抓出轨,甚至男人在外面生了私生子,不用付一分钱抚养费!

扶苏聊历史
2026-09-28 15:48:19
荣耀首款阔折叠明年1月发布:搭载骁龙2nm旗舰芯!同类最大电池

荣耀首款阔折叠明年1月发布:搭载骁龙2nm旗舰芯!同类最大电池

快科技
2026-10-02 21:53:06
62岁大爷坚持每天俯卧撑200个,1年后去医院体检,身体状况如何了

62岁大爷坚持每天俯卧撑200个,1年后去医院体检,身体状况如何了

医学科普汇
2026-09-10 17:45:05
几种降压药安全性排名!最安全的竟是它,危害最大的需警惕!

几种降压药安全性排名!最安全的竟是它,危害最大的需警惕!

健康之光
2026-09-30 13:01:37
太哏了!国足效仿巴黎开球出边线,结果刘洋没踢远开给了对手

太哏了!国足效仿巴黎开球出边线,结果刘洋没踢远开给了对手

懂球帝
2026-10-02 23:17:09
苏林在美国被特朗普冷落,回国之后第一件事,立即派人北上中国

苏林在美国被特朗普冷落,回国之后第一件事,立即派人北上中国

近史博览
2026-10-01 15:36:50
迪拜客机副驾国籍成调查焦点,特朗普认为其与伊朗有关

迪拜客机副驾国籍成调查焦点,特朗普认为其与伊朗有关

界面新闻
2026-10-02 16:18:05
没想到!99岁菲利普亲王晚年与女红颜共度,竟是英国女王默许

没想到!99岁菲利普亲王晚年与女红颜共度,竟是英国女王默许

梦总会实现的呢
2026-09-28 17:42:40
又一位好莱坞巨星迎娶亚裔女孩,金凯瑞秘密结婚,女方小32岁

又一位好莱坞巨星迎娶亚裔女孩,金凯瑞秘密结婚,女方小32岁

疯狂影视圈
2026-10-02 00:35:59
2026-10-03 03:27:00
MediaTea
MediaTea
专业的数字媒体、新媒体技术
2210文章数 85关注度
往期回顾 全部

科技要闻

“分手”15天后,华为与赛力斯签约新五年

头条要闻

李在明:若乌克兰拒不道歉 将采取进一步措施

头条要闻

李在明:若乌克兰拒不道歉 将采取进一步措施

体育要闻

30天30队·快船:被莱纳德挂在半空的未来?

娱乐要闻

潘玮柏老婆被猜怀二胎 中秋vlog露馅

财经要闻

珠宝黑马爆雷,老板全家跑路泰国!

汽车要闻

方程豹9月热销破4万 首款皮卡鲨鱼将于四季度上市

态度原创

亲子
旅游
手机
本地
公开课

亲子要闻

网传多地幼儿园男女比例失衡,男孩比女孩多3倍,网友说:以后性资源会出现巨大缺口!

旅游要闻

游玩新体验!鼎湖山泉・2026白云国际啤酒美食嘉年华启幕

手机要闻

创维F3 Pro闺蜜机新增12GB RAM + 256GB存储空间版本,6099元

本地新闻

中秋逛白塔寺,体验国医妙荟雅集

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版