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

如何高效获取可广播Numpy数组广播后的维度形状?

获取Numpy数组广播后的形状

当然有更高效的方法,不用真的执行数组运算:

  • 方法一:使用np.broadcast_shapes(Numpy 1.20及以上版本)
    这是Numpy专门提供的工具函数,直接传入各个数组的形状元组就能得到广播后的形状,完全不需要操作数组本身,效率拉满:

    import numpy as np
    broadcasted_shape = np.broadcast_shapes(a.shape, b.shape, c.shape)
    
  • 方法二:利用np.broadcast对象
    如果你的Numpy版本比较旧,也可以创建一个广播对象,它只会处理广播规则、计算最终形状,不会生成实际的数组:

    broadcast_obj = np.broadcast(a, b, c)
    broadcasted_shape = broadcast_obj.shape
    

这两种方法都比(a+b+c).shape高效得多,后者会先创建临时数组再取形状,当数组规模较大时性能差距会特别明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 12:39:52