新闻详情

新闻详情

首页 / 资讯中心 / 详情

12_基本运算和广播机制

发布时间:2026/9/11 8:58:12来源:尧图网络
12_基本运算和广播机制
数组的基本运算大小相等的数组之间的任何算术运算都会将运算应用到元素级对应位置元素直接运算 - * /广播机制广播兼容规则两个维度相等或者其中一个是 1就能广播。第一步自动补齐维度左边补 1第二步广播自动扩展成一样大第三步逐元素相加importnumpyasnp# 2.8 基本运算defbaseOperationFun():# numpy中的数组不用编写循环即可执行批量运算称之为矢量化运算。# 叠加运算即可大小相等的数组之间的任何算术运算都会将运算应用到元素级。arr1np.array([[1,2,3],[4,5,6]])arr2np.array([[7,8,9],[10,11,12]])print(arr1arr2)print(arr1-arr2)print(arr1*arr2)print(arr1/arr2)print()defbaseOperationByCoefficient():#数组与标量的算术运算会将标量值传播到各个元素不同大小的数组之间的运算叫做广播。# 类似看作矩阵变为一排人人有份arr1np.array([[1,2,3],[4,5,6]])print(arr1100)print(arr1-100)print(arr1*100)print(arr1/100)# 广播机制是 NumPy 中一个允许在不同形状的数组之间进行元素级运算defbroadcastFun():arr1np.array([1,2,3])arr2np.array([[4],[5],[6]])print(arr1.shape)# (3,)一根竹签上串了3颗糖没有行和列的概念就是一条线print(arr2.shape)# 3行1列二维print(arr1arr2) 广播兼容规则两个维度相等或者其中一个是 1就能广播。 3 和 1 → 1 能扩成 3 ✓1 和 3 → 1 能扩成 3 ✓ 上述运算步骤细分拆解 第一步自动补齐维度左边补 1 arr1 (3,) → 补齐成 (1, 3) arr2 (3,1) → 保持 (3, 1) 第二步广播自动扩展成一样大 arr1 从 (1,3) 扩展成 (3,3) 沿着行复制 3 次 [1,2,3] [1,2,3] [1,2,3] arr2 从 (3,1) 扩展成 (3,3) 沿着列复制 3 次 [4,4,4] [5,5,5] [6,6,6] arr1 (1,3) → 纵向复制 3 次 → (3,3) arr2 (3,1) → 横向复制 3 次 → (3,3) ┌───┬───┬───┐ ┌───┬───┬───┐ │ 1 │ 2 │ 3 │ ← 原数据 │ 4 │ 4 │ 4 │ ← 4 横向拷贝 3 份 ├───┼───┼───┤ ← 复制第1行 ├───┼───┼───┤ │ 1 │ 2 │ 3 │ ← 复制第2行 │ 5 │ 5 │ 5 │ ← 5 横向拷贝 3 份 ├───┼───┼───┤ ← 复制第3行 ├───┼───┼───┤ │ 1 │ 2 │ 3 │ │ 6 │ 6 │ 6 │ ← 6 横向拷贝 3 份 └───┴───┴───┘ └───┴───┴───┘ 第三步逐元素相加 [1,2,3] [4,4,4] [5,6,7] [1,2,3] [5,5,5] [6,7,8] [1,2,3] [6,6,6] [7,8,9] 最终结果 [[5 6 7] [6 7 8] [7 8 9]] 总结 (3,) → 横向扩展复制行 (3,1) → 纵向扩展复制列 最后变成同样大小的矩阵再逐元素相加 广播兼容规则两个维度相等或者其中一个是 1就能广播。 3 和 1 → 1 能扩成 3 ✓ 1 和 3 → 1 能扩成 3 ✓ 从右往左比 第0维(最右): 3 vs 1 → 1 可以扩展到 3 ✓ 第1维: 1 vs 3 → 1 可以扩展到 3 ✓ defbroadcastFunError():# 一维数组arr5np.array([1,2,3])# 形状为 (3,)# 一维数组arr6np.array([4,5])# 形状为 (2,)try:resultarr5arr6print(result)exceptExceptionase:print(f错误信息(3,) 和 (2,) 完全不兼容不能运算: \n{e}) arr5 维度: (3,) → (3,) arr6 维度: (2,) → (2,) 从右往左比第0维: 3 vs 2 → 3 ≠ 2而且谁也不是 1 ✗/(ㄒoㄒ)/~~ 可以想象成要把两个矩阵拉伸成一样尺寸才能对应位置相加 [1,2,3] 是 3 个位置 [4,5] 只有 2 个位置 数量对不上没法一一配对计算程序不知道第 3 个数字拿谁去加所以报错。 if__name____main__:baseOperationFun()# baseOperationByCoefficient()# broadcastFun()# broadcastFunError()
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

腾讯WorkBuddy团队协作平台深度测评与实战指南 2026/9/11 8:55:38

腾讯WorkBuddy团队协作平台深度测评与实战指南

1. 腾讯WorkBuddy初体验:团队协作新选择作为一名长期关注企业协作工具的IT从业者,最近深度测试了腾讯最新推出的WorkBuddy团队协作平台。这款产品在传统企业微信的基础上,针对中小团队协作场景做了不少优化设计。经过两周的实际使用&#xff…

阅读更多 →
73 份 DESIGN.md 任选其一:让 AI 生成的页面不再是千篇一律 2026/9/11 8:55:38

73 份 DESIGN.md 任选其一:让 AI 生成的页面不再是千篇一律

73 份 DESIGN.md 任选其一:让 AI 生成的页面不再是千篇一律 【免费下载链接】awesome-design-md A collection of DESIGN.md files analysis by popular brand design systems. Drop one into your project and let coding agents generate a matching UI. 项目地…

阅读更多 →
e稿正确操作流程指南 一站式论文写作工具使用手册 2026/9/11 8:55:38

e稿正确操作流程指南 一站式论文写作工具使用手册

e稿核心定位与适用场景说明e稿是吉林省睿安未来科技有限公司推出的一站式AI论文写作软件,适合学术写作、商业文案、办公文稿等多元创作场景,核心定位为合规智能写作辅助工具,所有生成内容仅作参考,核心观点、原创内容需用户自主输…

阅读更多 →
树莓派Pico低功耗实践:从MicroPython陷阱到微安级DeepSleep 2026/9/11 8:55:38

树莓派Pico低功耗实践:从MicroPython陷阱到微安级DeepSleep

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
如何在本地跑通 Duix.Avatar:离线 AI 数字人视频生成完整指南(10秒视频进,口播视频出) 2026/9/11 8:55:38

如何在本地跑通 Duix.Avatar:离线 AI 数字人视频生成完整指南(10秒视频进,口播视频出)

如何在本地跑通 Duix.Avatar:离线 AI 数字人视频生成完整指南(10秒视频进,口播视频出) 【免费下载链接】Duix-Avatar 🚀 Truly open-source AI avatar(digital human) toolkit for offline video generation and digit…

阅读更多 →
Proteus单片机仿真从入门到闭环调试实战指南 2026/9/11 8:52:38

Proteus单片机仿真从入门到闭环调试实战指南

简介:本资源是一套面向单片机初学者与电子设计爱好者的Proteus仿真学习套件,涵盖33个经典单片机控制实例,覆盖LED控制、数码管显示、按键交互、中断应用、定时器驱动、继电器控制及音频发声等核心知识点,适用于课程实验、毕业设计…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞