题目
(判断题)在 numpy 中,不同大小(size)的矩阵之间不能直接进行运算
(判断题)在 numpy 中,不同大小(size)的矩阵之间不能直接进行运算
题目解答
答案
在NumPy中,不同大小(size)的矩阵之间是可以进行运算的,这被称为广播,广播是NumPy中一种强大的特性,它允许不同形状的数组在一定条件下进行运算,而无需显式地扩展数组的维度。所以题干描述错误
解析
考查要点:本题主要考查对NumPy中数组运算规则的理解,特别是广播(Broadcasting)机制的应用。
解题核心思路:
- 明确NumPy允许不同形状的数组进行运算,前提是它们满足广播规则。
- 关键点在于理解广播的条件:当两个数组的维度在某一轴上大小相同,或其中一方的大小为1时,可以进行广播运算。
破题关键:
若学生熟悉广播的概念,即可直接判断题干错误。若不熟悉,需回忆数组运算中是否涉及隐式维度扩展。
在NumPy中,广播(Broadcasting)是允许不同形状数组进行运算的核心机制。其规则如下:
-
维度对齐:从最后一个维度开始,逐层比较两个数组的形状。若某一维度的大小不同,但其中一方的大小为1,则该维度会被扩展为另一方的大小。
- 例如:数组
a的形状为(3,4),数组b的形状为(1,4),则b会被广播为(3,4)后再与a运算。
- 例如:数组
-
维度扩展:若两个数组的维度不同,较小的数组会被隐式地在左侧添加维度(即增加轴)。
- 例如:标量
5可以与任意形状的数组相加,因为标量被视为形状为(1)的数组,通过广播扩展到目标形状。
- 例如:标量
示例:
import numpy as np
a = np.array([[1, 2], [3, 4]]) # 形状(2,2)
b = np.array([5, 6]) # 形状(2,)
c = a + b # b被广播为[[5,6],[5,6]],结果c的形状为(2,2)