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

如何用简洁方法实现NumPy数组扩展以进行逐元素减法运算?

简便实现NumPy数组扩展与减法运算

先定义原始数组:

import numpy as np

a = np.array([[1,2],[3,4]])
b = np.array([[5,6],[7,8],[9,10]])

方法一:显式生成目标数组c和d

  • 生成c:将a的每一行重复3次,调整维度到(2,3,2)
    c = a[:, np.newaxis, :].repeat(3, axis=1)
    
  • 生成d:将b整体重复2次,调整维度到(2,3,2)
    d = b[np.newaxis, :, :].repeat(2, axis=0)
    

之后直接执行c - d即可得到结果。

方法二:利用广播机制直接运算(更高效)

不用显式创建c和d,直接通过扩展维度触发NumPy的广播机制,一步到位:

result = a[:, np.newaxis, :] - b[np.newaxis, :, :]

这里:

  • a[:, np.newaxis, :]把a从(2,2)转为(2,1,2)
  • b[np.newaxis, :, :]把b从(3,2)转为(1,3,2)
    NumPy会自动将两个数组广播成(2,3,2)的形状,直接完成减法运算,既省内存又简化代码。

内容的提问来源于stack exchange,提问作者Gabriel Vasconcelos Fruet

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 14:05:23