MST

星途 面试题库

面试题:Python中NumPy库广播机制的基础应用

假设有一个形状为(3, 1)的NumPy数组a和一个形状为(1, 4)的NumPy数组b,使用广播机制计算它们相加的结果,并描述广播的过程。
20.8万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
  1. 计算结果: 首先导入numpy库:
    import numpy as np
    a = np.array([[1], [2], [3]])
    b = np.array([[4, 5, 6, 7]])
    result = a + b
    print(result)
    
    计算结果result是一个形状为(3, 4)的数组,内容如下:
    [[ 5  6  7  8]
     [ 6  7  8  9]
     [ 7  8  9 10]]
    
  2. 广播过程描述
    • 数组a的形状是(3, 1),数组b的形状是(1, 4)
    • 广播机制从右到左比较两个数组的形状。
    • 对于最右边的维度,数组a1,数组b4,由于1和任何数匹配(这里是4),a的这一维度会被扩展为4
    • 对于次右边的维度,数组a3,数组b1,同样13匹配,b的这一维度会被扩展为3
    • 最终,数组a在第二个维度上被复制4次,数组b在第一个维度上被复制3次,两个数组都变成了形状为(3, 4)的数组,然后对应元素相加得到最终结果。