正如我们可以通过将向量乘以一个数字(标量)来缩放它们一样,我们也可以对矩阵进行相同的操作。矩阵的标量乘法涉及取一个数字(标量),然后用该数字乘以矩阵中的每个元素。这个操作会均匀地缩放整个矩阵。假设你有一个矩阵,它可能代表灰度图像的像素强度。将这个矩阵乘以标量2,会使得每个像素的强度加倍,从而使图像整体更亮。定义与表示设 $A$ 是一个 $m \times n$ 矩阵,$c$ 是一个标量(实数)。$A$ 与 $c$ 的标量乘法,表示为 $c A$,会得到一个新的 $m \times n$ 矩阵,我们称之为 $B$。结果矩阵 $B$ 的每个元素 $B_{ij}$,是通过将原始矩阵 $A$ 的对应元素 $A_{ij}$ 乘以标量 $c$ 得到的。数学上,如果 $B = c A$,那么: $$ B_{ij} = c \cdot A_{ij} $$ 对于所有有效的行索引 $i$ 和列索引 $j$。在标量乘法过程中,矩阵的维度不会改变。如果 $A$ 是 $m \times n$,那么 $c A$ 也是 $m \times n$。计算示例让我们取标量 $c = 3$ 和一个 $2 \times 3$ 矩阵 $A$: $$ A = \begin{pmatrix} 1 & 0 & -2 \ 4 & 5 & 3 \end{pmatrix} $$要计算 $3 A$,我们将 $A$ 的每个元素乘以 3: $$ 3 A = 3 \begin{pmatrix} 1 & 0 & -2 \ 4 & 5 & 3 \end{pmatrix} $$ $$ = \begin{pmatrix} 3 \times 1 & 3 \times 0 & 3 \times (-2) \ 3 \times 4 & 3 \times 5 & 3 \times 3 \end{pmatrix} $$ $$ = \begin{pmatrix} 3 & 0 & -6 \ 12 & 15 & 9 \end{pmatrix} $$ 结果矩阵与原始矩阵 $A$ 具有相同的维度($2 \times 3$)。在 Python 中使用 NumPy 进行标量乘法使用 NumPy 进行标量乘法很简单。NumPy 数组重载了标准的乘法运算符 *,当其中一个操作数是标量时,用于执行逐元素操作。以下是使用 NumPy 执行前面示例的方法:import numpy as np # 定义矩阵 A A = np.array([ [1, 0, -2], [4, 5, 3] ]) # 定义标量 c c = 3 # 执行标量乘法 B = c * A # 打印原始矩阵和结果 print("原始矩阵 A:\n", A) print("\n标量 c:", c) print("\n标量乘法的结果 (c * A):\n", B)输出:Original Matrix A: [[ 1 0 -2] [ 4 5 3]] Scalar c: 3 Result of Scalar Multiplication (c * A): [[ 3 0 -6] [12 15 9]]如你所见,NumPy 能够高效地处理逐元素乘法。这种简单性是 NumPy 在 Python 数值计算中被广泛应用的原因之一。标量乘法的性质标量乘法与其他矩阵运算(如加法)的相互作用是可预测的。例如,标量乘法对矩阵加法满足分配律。如果 $A$ 和 $B$ 是相同维度的矩阵,$c$ 是一个标量,那么: $$ c (A + B) = c A + c B $$ 此外,如果 $c$ 和 $d$ 是标量: $$ (c + d) A = c A + d A $$ $$ c (d A) = (cd) A $$这些性质在处理涉及矩阵和标量的代数表达式时很有用。标量乘法是一种基本工具,用于缩放以矩阵形式表示的数据,这是机器学习算法数据预处理步骤中的常见要求。