You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何高性能实现numpy二维数组与另一数组的逐元素相加

最优实现方案

直接利用NumPy原生广播机制执行加法即可,代码如下:

import numpy as np

a = np.array([[1,2,3],[4,5,6]]) 
b = np.array([[1,5,10]])
result = a + b

运行后输出的结果和需求完全匹配:
array([[ 2, 7, 13], [ 5, 10, 16]])

性能优势说明

这个方案是所有可行实现里性能最优的,原因如下:

  • 所有计算逻辑完全在NumPy底层C语言层面执行,没有Python层的循环开销,运算速度最快
  • 广播机制不会实际将b数组复制为和a同维度的新数组,仅在计算时做虚拟维度扩展,几乎没有额外内存开销
  • 不需要调用repeat、tile等会生成新数组的接口,避免了不必要的内存分配和拷贝成本,当a的行数越大时,性能优势越明显。类似np.tile(b, (a.shape[0], 1)) + a的实现会额外生成和a同大小的中间数组,内存和时间开销都会高不少,不推荐。

内容的提问来源于stack exchange,提问作者user4603876

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 15:24:03