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

如何用NumPy实现二维数组行与一维数组元素对应相加?

NumPy实现指定数组相加需求

当然可以实现,核心是利用NumPy的广播机制,只需要将数组b转换为列向量,就能让它和a按行对应元素完成相加操作。

具体代码示例

import numpy as np

# 定义原始数组
a = np.array([[1, 2], [100, 200]])
b = np.array([10, 20])

# 将b转换为列向量,形状变为(2, 1)
b_col = b.reshape(-1, 1)
# 也可以用 b[:, np.newaxis] 实现同样效果

# 执行相加操作
result = a + b_col

print(result)
# 输出结果:
# [[ 11  12]
#  [120 220]]

原理说明

NumPy的广播规则允许形状兼容的数组进行元素级运算:

  • 原始a的形状是(2, 2),转换后的b_col形状是(2, 1)
  • 运算时b_col会自动广播为(2, 2)的数组,即每一行重复对应元素两次:[[10,10], [20,20]]
  • 最终和a对应位置元素相加,正好得到目标结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 03:43:08