栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Numpy 广播机制

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Numpy 广播机制

文章目录
      • 可以参考很多博客:
      • 具体规则

可以参考很多博客:

NumPy广播机制(Broadcasting) - 褚维芜的文章 - 知乎
https://zhuanlan.zhihu.com/p/262166150

numpy的广播(Broadcasting) - 忆臻的文章 - 知乎
https://zhuanlan.zhihu.com/p/35010592

等等

具体规则

总结起来规则如下:

  1. 对齐
    所有输入数组都向其中 shape 最长的数组 对齐, 然后
    (S1). 先不管维数为 空 和 1 的那几个 维度 上的值, 进入 (S2).
    (S2). 比较对应 (除去 (S1) 中提到的维度) 维度 上的数值,
             (I) 如果不相等, 不能进行 broadcasting, 直接结束.
             (II) 如果相等进入 (S3).
    (S3). shape 中不足的部分都通过在前面加 1 补齐, 也即在 对齐 后, 维度 为 空 的补充 1, 进入下一步 2. 广播

  2. 广播 (broadcasting)
    维度 中形状为 1 的数组将被拉伸以匹配另一个数组对应维度形状.

  3. 输出数组的 shape 是输入数组 shape 的各个轴上的最大值.

进一步解释:
注意这里说的是数组的 shape.

例1:
A1.shape = (4,2,3,2), B1.shape = (2,3), 因为 A1 的 shape 最长, 那么应该向 A1 看齐. 也就是所谓的 向右看齐 规则, 如计算 A1+B1 时

  • (S1):
    4, 2, 3, 2
                 2, 3
  • (S2): 因为 维度 上的值不相等, 不能 broadcasting, 直接 (报错) 结束.

例2:
A2.shape = (4,2,3,2), B2.shape = (2,1,2), 计算 C2 = A2 + B2 时, 首先 向右看齐

  • (S1):
    4, 2, 3, 2
           2, 1, 2
  • (S2): 因为 维度 上的值相等, 进入 (S3).
  • (S3): shape 中不足的部分都通过在前面加 1 补齐
    4, 2, 3, 2
    1, 2, 1, 2

最终 C2.shape = (4,2,3,2).

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/665618.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号