news 2026/8/8 0:54:22

12_基本运算和广播机制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
12_基本运算和广播机制
  • 数组的基本运算:大小相等的数组之间的任何算术运算都会将运算应用到元素级

    • 对应位置元素直接运算(+ - * /)
  • 广播机制:

    • 广播兼容规则:两个维度相等,或者其中一个是 1,就能广播。
    • 第一步:自动补齐维度(左边补 1)
    • 第二步:广播自动扩展成一样大
    • 第三步:逐元素相加
importnumpyasnp# 2.8 基本运算defbaseOperationFun():# numpy中的数组不用编写循环即可执行批量运算,称之为矢量化运算。# 叠加运算即可,大小相等的数组之间的任何算术运算都会将运算应用到元素级。arr1=np.array([[1,2,3],[4,5,6]])arr2=np.array([[7,8,9],[10,11,12]])print(arr1+arr2)print(arr1-arr2)print(arr1*arr2)print(arr1/arr2)print()defbaseOperationByCoefficient():#数组与标量的算术运算会将标量值传播到各个元素,不同大小的数组之间的运算叫做广播。# 类似看作矩阵变为一排,人人有份arr1=np.array([[1,2,3],[4,5,6]])print(arr1+100)print(arr1-100)print(arr1*100)print(arr1/100)# 广播机制是 NumPy 中一个允许在不同形状的数组之间进行元素级运算defbroadcastFun():arr1=np.array([1,2,3])arr2=np.array([[4],[5],[6]])print(arr1.shape)# (3,)一根竹签上串了3颗糖,没有"行"和"列"的概念,就是一条线print(arr2.shape)# 3行1列,二维print(arr1+arr2)''' 广播兼容规则:两个维度相等,或者其中一个是 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():# 一维数组arr5=np.array([1,2,3])# 形状为 (3,)# 一维数组arr6=np.array([4,5])# 形状为 (2,)try:result=arr5+arr6print(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()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/8 0:52:14

大家写毕业论文一般都会选择哪些靠谱的 AI 辅助工具?

毕业论文写作,是每个学生都要经历的一场“硬仗”。从选题、开题、撰写初稿,到反复降重、消除AI痕迹、调整格式,每一步都耗时耗力。如今,AI写作辅助工具已成为不少同学的“秘密武器”。但面对市场上琳琅满目的产品,如何…

作者头像 李华
网站建设 2026/8/8 0:51:23

querySelector()

1. 基本语法document.querySelector("选择器")比如:let box document.querySelector("#box");意思:去整个网页(document)里面,找 id 为 box 的元素。一、先回顾 CSS 选择器你学 CSS 的时候应该见…

作者头像 李华
网站建设 2026/8/8 0:47:18

Headroom 三大压缩器详解:从原理到代码实战

1. 引言Headroom 是音频处理领域一个非常实用的动态范围压缩工具库,它把复杂的压缩器原理封装成简洁易用的 API,让开发者可以快速在项目中集成专业级的音频动态处理能力。本文将从原理到实战,详细讲解 Headroom 的三大压缩器:峰值…

作者头像 李华
网站建设 2026/8/8 0:42:16

2026商城网站搭建平台哪个好?凡科商城、立亭云、Shopify对比

今天给大家带来2026商城网站搭建平台哪个好?凡科商城、立亭云、Shopify对比。商务部电子商务司2026年7月介绍,2026年1—6月,全国网上商品零售额增长4.8%,拉动社会消费品零售总额增长1.2个百分点;网上服务零售额增长6.0…

作者头像 李华
网站建设 2026/8/8 0:09:25

网盘直链下载助手:解锁你的网盘下载新姿势,告别龟速下载的烦恼

网盘直链下载助手:解锁你的网盘下载新姿势,告别龟速下载的烦恼 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / …

作者头像 李华