恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

12_基本运算和广播机制

  • 首页
  • 资讯中心
  • /
  • 12_基本运算和广播机制

相关资讯

2024年西安网站建设公司排名大揭秘:如何避坑选到靠谱团队 2026/8/8 0:54:40
UAssetGUI:专业级虚幻引擎资产离线编辑解决方案 2026/8/8 0:49:40
2026高中生英语词汇学习APP测评:天学网等4款产品实测对比 2026/8/8 0:49:40

最新资讯

UI设计切图规范:从命名到交付的全流程工程化实践
递归现象学方法论(RPM)通过不动点理论解决自指认知系统方法论困境的研究报告
CesiumJS三维地球开发入门:从环境搭建到数据可视化实战
软件工程实战指南:从经典教材到工程思维,打通理论与实践的鸿沟
一行命令实现Claude Code本地代理,无缝对接DeepSeek API
C++与MFC实战:集成ONNX Runtime构建本地化AI图像分类工具

今日推荐

Java图像处理实战指南
昇腾AI代理实现多号通话自动化
2026年Graph+AI Agents最新创新思路

本周热门

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案
分布式配置中心选型实战:Nacos与Consul在创业场景下的对比
MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

12_基本运算和广播机制

发布时间:2026/8/8 0:54:40
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()

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号