趋近智
本课程已归档: 现已推出包含更新教学大纲和改进内容的新版本。
除了向量加法或标量乘法,另一个重要的运算是点积(也称为标量积或内积)。与产生另一个向量的加法或标量乘法不同,点积接受两个向量并返回一个标量。这个运算在许多方面都很常用,包括衡量向量间的相似性,以及作为矩阵乘法等更复杂运算的组成部分。
点积定义于两个相同维度的向量。如果你有两个向量,比如 a 和 b,它们都包含 n 个元素:
a=a1a2⋮an,b=b1b2⋮bn它们的点积,通常表示为 a⋅b 或 aTb,通过将对应元素相乘并求和来计算:
a⋅b=a1b1+a2b2+⋯+anbn=i=1∑naibi示例:
让我们计算两个3维向量的点积: v=[1,2,3] w=[4,−5,6]
使用公式: v⋅w=(1×4)+(2×−5)+(3×6) v⋅w=4−10+18 v⋅w=12
结果12是一个标量。请注意,向量必须具有相同数量的元素才能定义点积。你不能计算一个3元素向量和一个4元素向量的点积。
NumPy提供了计算点积的便捷方法。
numpy.dot() 函数:import numpy as np
v = np.array([1, 2, 3])
w = np.array([4, -5, 6])
# 使用 np.dot() 计算点积
dot_product = np.dot(v, w)
print(f"向量 v: {v}")
print(f"向量 w: {w}")
print(f"点积 (使用 np.dot): {dot_product}")
输出:
向量 v: [1 2 3]
向量 w: [ 4 -5 6]
点积 (使用 np.dot): 12
@ 运算符: Python 3.5+ 引入了 @ 运算符用于矩阵乘法,它也适用于计算一维数组(向量)的点积。import numpy as np
v = np.array([1, 2, 3])
w = np.array([4, -5, 6])
# 使用 @ 运算符计算点积
dot_product_operator = v @ w
print(f"向量 v: {v}")
print(f"向量 w: {w}")
print(f"点积 (使用 @): {dot_product_operator}")
输出:
向量 v: [1 2 3]
向量 w: [ 4 -5 6]
点积 (使用 @): 12
两种方法都得到相同的标量结果12,与我们手动计算的结果一致。在复杂表达式中,@ 运算符因其简洁性而常被选用。
点积有一个重要的几何意义,它与两个向量之间的夹角有关。公式是:
a⋅b=∥a∥∥b∥cos(θ)其中:
这个公式使我们能够通过向量的分量来计算它们之间的夹角:
cos(θ)=∥a∥∥b∥a⋅b由此,我们可以根据点积看出向量间的关系:
点积也与投影这个想法有关。向量 a 在向量 b 上的标量投影(a 有多少指向 b 的方向)可以使用点积计算:∥b∥a⋅b。
点积在机器学习算法中频繁出现:
理解点积的计算方法及其几何意义,有助于理解这些更高级的应用。在下一节中,我们将练习使用NumPy实现这些向量运算。
这部分内容有帮助吗?
numpy.dot函数及其在向量点积和@运算符中的用法。© 2026 ApX Machine Learning用心打造