趋近智
向量 (vector)的缩放是一个基本运算,它涉及将向量乘以一个数。这个数称为标量。标量在线性代数中就是一个普通数字(如 5、-2.7 或 ),与向量或矩阵不同。
标量乘法改变向量的大小(长度),如果标量为负,则改变其方向。这就像拉伸、收缩或翻转向量。
要进行标量乘法,您需要将向量 (vector)的每个元素乘以标量值。
在数学上,如果您有一个标量 和一个具有 个元素的向量 :
那么标量乘法 定义为:
原始向量 的每个分量都乘以标量 。结果向量与原始向量维度相同。
从几何角度看,将向量 (vector) 乘以标量 会得到一个新向量,如果 ,则方向与 相同;如果 ,则方向相反。新向量的长度是原始向量 长度的 倍。如果 ,结果是零向量(所有元素都为零的向量)。
考虑一个二维向量 。
原始向量 (蓝色),按 2 缩放(绿色),以及按 -1 缩放(红色)。缩放改变长度并可能改变方向。
NumPy 使用标准乘法运算符 * 使标量乘法变得简单。
我们来定义向量 (vector) 和标量 。
import numpy as np
# 定义向量 v
v = np.array([2, 1])
# 定义标量 c
c = 3
# 执行标量乘法
scaled_v = c * v
print(f"原始向量 v: {v}")
print(f"标量 c: {c}")
print(f"缩放后的向量 c*v: {scaled_v}")
输出:
Original vector v: [2 1]
Scalar c: 3
Scaled vector c*v: [6 3]
如预期的那样,NumPy 将向量 v 的每个元素乘以标量 c=3。
我们来尝试使用负标量进行缩放:
# 定义一个负标量
c_neg = -1.5
# 执行标量乘法
scaled_neg_v = c_neg * v
print(f"原始向量 v: {v}")
print(f"负标量 c_neg: {c_neg}")
print(f"缩放后的向量 c_neg*v: {scaled_neg_v}")
输出:
Original vector v: [2 1]
Negative scalar c_neg: -1.5
Scaled vector c_neg*v: [-3. -1.5]
同样,每个元素 [2, 1] 乘以 -1.5 得到 [-3.0, -1.5]。请注意 NumPy 自动处理浮点数结果。
标量乘法是线性代数和机器学习 (machine learning)中常使用的基本组成部分,通常用于调整由向量表示的特征的影响或比例。
这部分内容有帮助吗?
ndarray对象上执行。© 2026 ApX Machine Learning用心打造