【数据分析之道-NumPy(四)】numpy广播机制

2023-11-15

在这里插入图片描述

专栏导读

✍ 作者简介:i阿极,CSDN Python领域新星创作者,专注于分享python领域知识。

本文录入于《数据分析之道》,本专栏针对大学生、初级数据分析工程师精心打造,对python基础知识点逐一击破,不断学习,提升自我。
订阅后,可以阅读《数据分析之道》中全部文章内容,包含python基础语法、数据结构和文件操作,科学计算,实现文件内容操作,实现数据可视化等等。
✍ 其他专栏:《机器学习案例》

1、广播机制

NumPy的广播(broadcasting)机制是一种在不同形状的数组之间进行算术运算的机制。在许多情况下,我们需要将不同形状的数组进行算术运算,此时就可以使用广播机制。

在这里插入图片描述

广播机制的规则如下:

  • 如果两个数组的形状在某个维度上不同,那么在这个维度上形状为1的数组将被扩展为与另一个数组相同的形状。

  • 如果两个数组的形状在某个维度上相同或其中一个数组在这个维度上的长度为1,那么这两个数组在这个维度上是兼容的。

  • 如果两个数组的形状在所有维度上都是兼容的,那么它们就可以进行广播。

2、一维数组和二维数组的广播

import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([1, 2, 3])
c = a + b
print(c)

我们创建了一个二维数组a和一个一维数组b,并使用a + b进行加法运算。由于数组b的形状是(3,),在这个维度上长度为1,所以它可以与数组a的形状(2,3)进行广播。实际上,数组b被扩展成了形状(2,3),然后再进行加法运算,得到的结果为:

在这里插入图片描述

3、二维数组和三维数组的广播

import numpy as np

a = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
b = np.array([[1, 2], [3, 4]])
c = a + b
print(c)

我们创建了一个三维数组a和一个二维数组b,并使用a + b进行加法运算。由于数组b的形状是(2,2),在第一维上长度为1,所以它可以与数组a的形状(2,2,2)进行广播。实际上,数组b被扩展成了形状(2,2,2),然后再进行加法运算,得到的结果为:

在这里插入图片描述

4、标量和数组的广播

import numpy as np

a = np.array([1, 2, 3])
b = 2
c = a + b
print(c)

我们将一个数组a与一个标量b进行加法运算。由于标量在任何维度上都是长度为1的数组,所以标量可以与任何形状的数组进行广播。实际上,标量b被扩展成了形状(1,),然后再与数组a的形状(3,)进行加法运算,得到的结果为:

在这里插入图片描述

5、形状不兼容的数组不能进行广播

import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([1, 2])
c = a + b
print(c)

我们试图将一个形状为(2,3)的数组a与一个形状为(2,)的数组b进行广播。这两个数组在第二个维度上的长度不同,无法进行广播,会抛出ValueError异常

在这里插入图片描述


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【数据分析之道-NumPy(四)】numpy广播机制 的相关文章

随机推荐

  • 自定义控件中 wrap_content 属性无效的分析解决

    问题 在自定义一个类似锁屏页面时间日期样式的控件 继承 View 的时候 发现在 xml 中使用 wrap content 属性相当于使用了 match parent 属性 原因分析 进入View的源码 可以看到 onMeasure 的方法
  • jdbc连接数据库(MySQL 8.0.19)url设置

    本文只针对下述版本的url设置问题 我的JDK版本是11 0 1 MySQL版本8 0 19 MySQL的8系列版本应该都可以 一般连接失败的原因是url没设置好 这里我所设置的url亲测有效 String urlString jdbc m
  • Kali之渗透攻击

    渗透攻击是指黑客为了获得非法利益 通过各种手段进入网络系统 计算机系统中 在未经授权的情况下获取信息 利用漏洞控制系统和执行越权操作的一种行为 其目的在于获取非法利益 破坏或者窃取关键数据 以及对网络系统进行控制 在学习渗透攻击这一知识点过
  • world特殊符号

    world特殊符号 论文需要 和圆里面一个乘号 论文需要 和圆里面一个乘号 1 首先打开word文档 找到要 插入符号 的地方 2 选择插入功能下面的 符号按钮 3 选择符号下面的 其他符号 4 将字体选为 symbol 这个字体 5 在这
  • Hive 一文读懂

    Hive 简介 1 1 什么是Hive 1 hive简介 Hive 由Facebook开源用于解决海量结构化日志的数据统计 Hive是基于Hadoop的一个数据仓库工具 可以将结构化的数据文件映射为一张表 并提供类SQL查询功能 2 Hiv
  • opencv边缘检测-拉普拉斯算子

    sobel算子一文说了 索贝尔算子是模拟一阶求导 导数越大的地方说明变换越剧烈 越有可能是边缘 那如果继续对f t 求导呢 可以发现 边缘处 的二阶导数 0 我们可以利用这一特性去寻找图像的边缘 注意有一个问题 二阶求导为0的位置也可能是无
  • python报错AttributeError module ‘scipy.misc‘ has no attribute ‘imresize‘和 ‘imread‘

    python报错AttributeError module scipy misc has no attribute imresize 和 imread 报错原因 scipy版本过高 解决方案 降低scipy版本 如下 pip install
  • 迁移学习之resnet50——解决过拟合及验证集上准确率上不去问题

    keras之resnet50迁移学习做分类 问题1描述 迁移学习用resnet50做分类 验证集上的准确率一直是一个大问题 有时候稳定在一个低的准确率 我的一次是一直在75 上下波动 问题2描述 resnet50迁移学习 训练集上的准确率一
  • IDEA使用jsp可以访问页面,转换为html弹出页面为404

    这种办法为绕过controller直接访问静态页面 大家只要路径对 在springmvc xml中配置好一个 标签即可
  • 【mysql】mysql 常用建表语句

    1 建立员工档案表 要求字段 员工员工编号 员工姓名 性别 工资 email 入职时间 部门 2 合理选择数据类型及字段修饰符 要求有NOT NULL auto increment primary key等 make by kakane D
  • arcgis10.2破解版下载及其详细教程;;;附带10.1-10.6的破解版,没有教程

    1 arcgis10 2破解版 https blog csdn net bigemap article details 81131840 2 arcgis10 1 10 5破解版安装包 https blog csdn net e wsq a
  • 【c++】8.map和vector容器查找、删除指定元素、emplace、insert

    1 查找与删除 vector 和 map 容器中指定元素 vector 查找或删除vector的指定元素 123 方法1 使用迭代器 不同于map map有find方法 vector本身没有find这一方法 std vector
  • 从浅到深理解bert

    更多查看https github com B C WANG AI Storage 4 2 4 2从浅到深理解bert 4 2 1 理解Attention 参考https www cnblogs com robert dlut p 86382
  • Pytorch save_image和make_grid函数详解

    Pytorch save image和make grid函数详解 make grid用于把几个图像按照网格排列的方式绘制出来 save image用于保存图像 这两个函数的函数签名差不多 所以只说一个 def make grid tenso
  • excel python插件_再见 VBA!神器工具统一 Excel 和 Python

    大家好 我是东哥 经常给大家推荐好用的数据分析工具 也收到了铁子们的各种好评 这次也不例外 我要再推荐一个 而且是个爆款神器 Excel和Jupyter Notebok都是我每天必用的工具 而且两个工具经常协同工作 一直以来工作效率也还算不
  • 线段树模板

    线段树属于高级数据结构 本文粗略地讲解了一下线段树的模板 大家直接拿去用就好 long long ls int x return x lt lt 1 long long rs int x return x lt lt 1 1 const i
  • 电感选型计算

    转载 https www richtek com Design 20Support Technical 20Document AN053 电感之种类与其特性分析 摘要 电感器是开关转换器中非常重要的元器件 如用于储能及功率滤波器 电感器的种
  • react render中进行if判断

    在render中进行if条件判断然后加载相应的模块进行渲染方法如下 第一种 第二种
  • Spark的DataFrame和Schema详解和实战案例Demo

    1 概念介绍 Spark是一个分布式计算框架 用于处理大规模数据处理任务 在Spark中 DataFrame是一种分布式的数据集合 类似于关系型数据库中的表格 DataFrame提供了一种更高级别的抽象 允许用户以声明式的方式处理数据 而不
  • 【数据分析之道-NumPy(四)】numpy广播机制

    文章目录 专栏导读 1 广播机制 2 一维数组和二维数组的广播 3 二维数组和三维数组的广播 4 标量和数组的广播 5 形状不兼容的数组不能进行广播 专栏导读 作者简介 i阿极 CSDN Python领域新星创作者 专注于分享python领