趋近智
向量 (vector)是基本数学对象,可以使用 NumPy 数组等结构进行表示。掌握向量上的基本运算至关重要。本文将介绍两种主要的向量运算:向量加法和减法。这些运算是按元素进行的,意味着它们对所涉及向量的对应分量进行操作。
两个向量的相加很简单。你只需将每个向量的对应元素相加即可。为了使此运算有效,向量必须具有相同数量的元素,也就是说它们必须具有相同的维度或长度。
在数学上,如果你有两个 维向量, 和 :
它们的和,,计算如下:
例如,我们来相加两个3维向量:
和是:
几何解释
在几何上,向量加法可以通过将第二个向量 () 的尾部放在第一个向量 () 的头部来描绘。结果向量和 () 从原点( 的尾部)开始,结束于重新定位的 的头部。这通常被称为“首尾相接”规则。或者,当两个原始向量都从原点开始时,它形成由这两个向量构成的平行四边形的对角线。
使用首尾相接法进行向量加法。向量 (蓝色)与向量 (粉色,已移动)相加。结果向量 (绿色)从原点到移动后的 的尖端。虚线表示平行四边形的补全。
在NumPy中的实现
NumPy 使向量加法变得非常直观。你可以直接对表示向量的 NumPy 数组使用标准 + 运算符。NumPy 会自动处理按元素的加法。
import numpy as np
# 定义两个NumPy数组作为向量
u = np.array([1, 2, 3])
v = np.array([4, 5, 6])
# 相加向量
w = u + v
print(f"向量 u: {u}")
print(f"向量 v: {v}")
print(f"和 u + v: {w}")
Output:
向量 u: [1 2 3]
向量 v: [4 5 6]
和 u + v: [5 7 9]
请记住,如果你尝试相加不同长度的向量,NumPy 会引发 ValueError,因为无法执行按元素操作。
# 不兼容形状的例子
a = np.array([1, 2])
b = np.array([3, 4, 5])
try:
c = a + b
except ValueError as e:
print(f"向量 a 和 b 相加错误: {e}")
Output:
向量 a 和 b 相加错误: operands could not be broadcast together with shapes (2,) (3,)
向量减法与加法类似。你将第二个向量的对应元素从第一个向量中减去。同样,两个向量必须具有相同的维度。
如果你有两个 维向量, 和 :
它们的差,,计算如下:
例如,使用之前相同的向量 和 :
差是:
几何解释
在几何上,从 减去 () 等同于将 的负向量加到 上 ()。向量 与 具有相同的模,但方向相反。另一种描绘 的方式是,当 和 都从原点开始时,它是一个从 的头部开始,到 的头部结束的向量。
使用 方法进行向量减法。向量 (蓝色)与向量 (粉色,已移动)相加。结果向量 (绿色)从原点到移动后的 的尖端。
在NumPy中的实现
与加法类似,NumPy 中的向量减法使用标准 - 运算符。
import numpy as np
# 定义两个向量
u = np.array([1, 2, 3])
v = np.array([4, 5, 6])
# 从向量 u 中减去向量 v
d = u - v
print(f"向量 u: {u}")
print(f"向量 v: {v}")
print(f"差 u - v: {d}")
# 从向量 v 中减去向量 u
d_reversed = v - u
print(f"差 v - u: {d_reversed}")
Output:
向量 u: [1 2 3]
向量 v: [4 5 6]
差 u - v: [-3 -3 -3]
差 v - u: [3 3 3]
请注意,与加法不同,减法中顺序很重要 ( 通常与 不同)。向量加法满足交换律 (),但减法不满足。
向量加法和减法是线性代数中的基本工具。它们构成机器学习 (machine learning)算法中许多运算的基础,例如计算误差向量或更新特征权重 (weight)。理解它们的工作原理,无论是在数学上还是在代码中,使用 NumPy 等库,都是构建线性代数基础的重要一步。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•