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

news/2024/12/2 10:16:16/

在这里插入图片描述

文章目录

  • 专栏导读
  • 1、广播机制
  • 2、一维数组和二维数组的广播
  • 3、二维数组和三维数组的广播
  • 4、标量和数组的广播
  • 5、形状不兼容的数组不能进行广播

专栏导读

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

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

1、广播机制

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

在这里插入图片描述

广播机制的规则如下:

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

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

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

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

import numpy as npa = 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 npa = 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 npa = np.array([1, 2, 3])
b = 2
c = a + b
print(c)

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

在这里插入图片描述

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

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

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

在这里插入图片描述


📢文章下方有交流学习区!一起学习进步!💪💪💪
📢首发CSDN博客,创作不易,如果觉得文章不错,可以点赞👍收藏📁评论📒
📢你的支持和鼓励是我创作的动力❗❗❗


http://www.ppmy.cn/news/58355.html

相关文章

【LeetCode】221.最大正方形

221.最大正方形(中等) 题解 对于在矩阵内搜索正方形或长方形的题型,一种常见的做法是:定义一个二维 dp 数组,其中 dp[i][j] 表示满足题目条件的、以(i,j)为右下角的正方形或长方形属性。在本题中…

day11 TCP连接管理与UDP协议

目录 ​编辑 连接的建立——”三次握手” 连接的释放——“四次挥手” 保活计时器 用户数据报协议 UDP​编辑 连接的建立——”三次握手” TCP 建立连接的过程叫做握手。 采用三报文握手:在客户和服务器之间交换三个 TCP 报文段,以防止已失效的连接…

使用pg_basebackup备份

参考文档: http://postgres.cn/docs/14/app-pgbasebackup.html http://postgres.cn/docs/12/runtime-config-wal.html postgres版本 test# select version(); version …

ChatGPT技术原理 第八章:GPT与对话生成

目录 8.1 GPT在对话生成中的应用 8.2 基于GPT的对话生成模型 8.3 对话历史表示方法 8.4 策略学习

C#,生信软件实践(02)——DNA数据库EMBL格式详解及转为FASTA格式文件的源代码

>生信老白写的基础代码.fasta MAYBENOANYUSAGE 1 EMBL 1.1 EMBL组织 欧洲分子生物学实验室EMBL(European Molecular Biology Laboratory)1974年由欧洲14个国家加上亚洲的以色列共同发起建立,现在由欧洲30个成员国政府支持组成&#xf…

程序员都有哪些就业方向?不是所有人都能去互联网公司的!

程序员有哪些借给方向呢 不是所有人都能进互联网公司 就算你进互联网大厂 具体的工作内容 可能跟你想象的也不一样 今天咱们就聊聊程序员 都有哪些可以选择的方向吧 主要是我是刚才想了想 梳理梳理这个程序员主要就业方向 主要有四个方向 一个是互联网公司 再一个第二个就是软件…

REMIX:重构·连接·进化|徐亚波博士D3大会演讲实录

“欢迎大家和数说故事一起来到新世界,和我们一起,来玩一个AI普适场景的无限游戏。” 在数说故事第六届D3智能营销峰会上,数说故事创始人兼CEO徐亚波博士带来「REMIX——重构连接进化」的主题分享,聚焦“ChatGPT开启的AGI时代有什么…

docker容器:本地私有仓库、harbor私有仓库部署与管理

一、本地私有仓库 1、本地私有仓库简介 docker本地仓库,存放镜像,本地的机器上传和下载,pull/push。 使用私有仓库有许多优点: ①节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从…