当前位置: 首页 > news >正文

11月12日numpy学习总结——numpy的广播规则

在numpy中,两个shape不完全相同的数组可以做运算。比如:
aa = array([[0, 1, 2],
[3, 4, 5]])
bb = array([0, 1, 2])
aa+bb的值为:array([[0, 2, 4],
[3, 5, 7]])

这是因为numpy存在广播机制
在numpy中,广播遵循以下3条规则:
1、升维。如果两个数组的维度不同,则小维度数的数组在左边加1维。
2、扩展。如果两个数组维度相同,但是在对应的维度上都不匹配,则在维度为1的方向上扩展直到和另一个数组匹配。
3、异常。如果两个数组没有为1的维度,且对应的维度不匹配,则引发异常。

以下通过例子来解释以上规则。
例子1:
aa = array([[0, 1, 2],
[3, 4, 5]])
bb = array([0, 1, 2])
求:aa+bb
aa.shape 为(2,3)
bb.shape 为(3,)
首先,由于bb的维度数较小,因此bb的维度会升维为(1,3),注意是在左边加1,不是在右边加1,即bb的shape变为(1,3),而非(3,1)
然后,由于bb升维后,在第1个维度上和aa不匹配,因此,bb在第一个维度上进行扩展,直到和aa的维度相同,bb会变为array([[0,1,2],
[0,1,2]])
最后,aa+bb,就是对应位置的元素相加,结果为:
array([[0, 2, 4],
[3, 5, 7]])

例子2:
aa = np.arange(3)
bb = np.arange(3).reshape(3,1)
求:aa+bb
aa.shape为(3,)
bb.shape为(3,1)
**首先,**由于aa的维度较小,因此aa会升维为(1,3)
然后,由于aa升维后,aa在第1个维度上比bb小,且第1个维度为1,因此,aa会在第1个维度上扩展。bb在第2个维度上比aa小,且第2个维度为1,因此bb会在第2个维度扩展。
aa会扩展为array([[0,1,2],
[0,1,2],
[0,1,2]])
bb会扩展为array([[0,0,0],
[1,1,1],
[2,2,2]])
最后,aa+bb,就是在对应位置上的元素相加,结果为
array([[0, 1, 2],
[1, 2, 3],
[2, 3, 4]])

例子3:
aa = np.arange(6).reshape(3,2)
bb = np.arange(3)
求:aa+bb
首先,bb的维度数较aa小,因此bb会升维为(1,3)
然后,bb在第1个维度上比aa小,且维度为1,因此bb的shape为扩展为(3,3)。aa在第2个维度上比bb小,但是其维度不为1,因此不能扩展。
最后,bb扩展后的shape为(3,3),aa的shape为(3,2),二者不匹配,报异常。

http://www.dtcms.com/a/602736.html

相关文章:

  • 网站建设设计流程步骤万网网站域名多少钱一年
  • Flutter---Dart基础
  • 网站权重怎么看用jsp做校园网站
  • 网页制作与网站建设初学者必看教程杭州网站开发凡客
  • 如何解决解决,微信小程序ios无法长按复制问题<text>设置 selectable=“true“不起作用
  • Linux驱动知识点:容器嵌入机制(Container Embedding)
  • 深圳网站的建设维护公司现代农业建设 乡网站
  • Flutter---异步编程
  • 为什么浙江建设厅网站漯河市建设监理协会网站
  • 中国建设银行海南省分行网站教学活动设计方案模板
  • Nginx 零停机平滑升级完整指南
  • 洞头区网站建设收费本地同城服务平台
  • 易语言网站做软件下载上海园区虚拟地址一览表
  • wordpress多站点好吗网页设计居中代码
  • 继荣获GitCode G-Star认证后,数式Oinone入选2025年GitCode百大开源项目
  • 青少年CTF Crypto-factor1
  • 做平面哪个网站的素材最好wordpress一键 centos
  • 商城网站 搭建做小程序的平台
  • 金融网站建设案例仿淘宝网站制作
  • 马和人做人和牛做网站菏泽科技网站建设
  • 三只松鼠网站建设龙华做手机网站
  • fopen函数处理中文路径和内容乱码问题
  • 友点企业网站文化馆 网站 设计
  • 大文件上传全方案:Vue + Node.js 实战
  • SCI精读:基于计算机视觉改进光伏热点和积尘检测:基于现场航拍图像的YOLO模型系统比较
  • 专门做创意桌椅的网站谷歌play商店
  • 怎么查看网站是否做静态化处理0基础如何做网站
  • 基于MATLAB绘制CALIPSO Level 2产品中体积退偏比垂直廓线和频率分布直方图
  • 青岛网站推广哪家效果好搜索引擎营销案例分析
  • 网站网站如何做的充值下载网站开发