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

如何不使用循环为numpy数组中的所有向量减去同一指定向量

numpy广播实现多维数组批量减法

你要的无循环单条运算可以直接利用numpy的广播特性实现,只需调整v_t的维度使其适配v的形状即可:

实现代码

v = v - v_t[:, np.newaxis]

原理说明

  • 当前v的形状为(2, 20),v_t的形状为(2,),直接做减法会因为维度匹配规则不符合报错
  • v_t[:, np.newaxis]会将v_t的形状调整为(2, 1),符合numpy广播规则后,会自动将长度为1的第二维复制20次,与v的第二维对齐后逐元素做减法
  • 最终得到的结果第一行是所有x值减CONST的结果,第二行是所有y值减CONST的结果,完全符合你给出的预期输出

你也可以用reshape方法实现相同效果,命令如下:

v = v - v_t.reshape(2, 1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:54:00