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

这篇具有很好参考价值的文章主要介绍了【数据分析之道-NumPy(四)】numpy广播机制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

专栏导读

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

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

1、广播机制

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

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

广播机制的规则如下:

  • 如果两个数组的形状在某个维度上不同,那么在这个维度上形状为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),然后再进行加法运算,得到的结果为:

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

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),然后再进行加法运算,得到的结果为:

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

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,)进行加法运算,得到的结果为:

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

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异常

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


📢文章下方有交流学习区!一起学习进步!💪💪💪
📢首发CSDN博客,创作不易,如果觉得文章不错,可以点赞👍收藏📁评论📒
📢你的支持和鼓励是我创作的动力❗❗❗文章来源地址https://www.toymoban.com/news/detail-418451.html

到了这里,关于【数据分析之道-NumPy(四)】numpy广播机制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数据分析 - 基础入门之NumPy⑥】- NumPy案例巩固强化

    大家好!我是初心,本期给大家带来的是 NumPy 案例巩固强化练习题,共17道,亲测。 注:题目素材来自 ——《千锋教育》 本期跟大家分享的就是这些题目了!希望大家可以多多实操练习,加强巩固,以便更好的掌握 NumPy 。 文章直达 链接 上期回顾 【数据分析 - 基础入门之

    2024年02月15日
    浏览(33)
  • 【数据分析 - 基础入门之NumPy④】NumPy基本操作 - 一

    大家好!我是初心,本期给大家带来的是【【NumPy系列】基本操作 - 一。 作者的【 Python 数据分析】专栏正在火热更新中,如果本文对您有帮助,欢迎大家点赞 + 评论 + 收藏 ! 每日金句分享: 选择你所喜欢的,爱你所选择的。』—— 托尔斯泰「托尔斯泰 。 NumPy( Numerical Py

    2024年02月13日
    浏览(39)
  • 【数据分析】numpy (二)

    numpy作为数据分析,深度学习常用的库,本篇博客我们来介绍numpy的一些进阶用法: 一,numpy的常用简单内置函数: 1.1求和: 1.2求平均值: 1.3求最小值: 1.4求最大值: 以下就不再一一列举,我转成表格大家可以去Python手动尝试一下。 np.std() 标准差 np.var() 方差 np.median() 中位

    2024年02月14日
    浏览(28)
  • 【Python数据分析】数据分析之numpy基础

    实验环境:建立在Python3的基础之上 numpy提供了一种数据类型,提供了数据分析的运算基础,安装方式 导入numpy到python项目 本文以案例的方式展示numpy的基本语法,没有介绍语法的细枝末节,笔者认为通过查阅案例就能掌握基本用法。 numpy数组的基本概念 numpy默认所有元素具有

    2024年02月10日
    浏览(30)
  • 【数据分析入门】Numpy基础

    NumPy 的全称为 Numeric Python,它是 Python 的第三方扩展包,主要用来计算、处理一维或多维数组。   步入8月了,7月时因为项目所需,自学了 深度学习 相关的内容,现在 已经把项目所需要的神经网络框架搭建起来了,输入输出也都归一化了,模拟误差也加上了,图像的参数

    2024年02月13日
    浏览(40)
  • 数据分析 — Numpy 数组处理

    NumPy(Numerical Python)是一个用于 科学计算 的 Python 库,提供了多维数组对象(ndarray)以及数学函数,用于 处理大规模数据集和执行数值 计算。 当数据量达到一定级别后,NumPy 计算会比原生 Python 快。 Numpy 的主要对象是 同种元素 的多维数组。这是⼀个所有的元素都是⼀种类

    2024年02月22日
    浏览(31)
  • 【数据分析入门】Numpy进阶

    pandas 是一个功能强大的 Python 数据分析库 ,为 数据处理和分析 提供了高效且灵活的工具。它是在 NumPy 的基础上构建的,为 处理结构化数据(如表格数据) 和 时间序列数据 提供了 丰富的数据结构和数据操作方法 。 pandas 提供了两种主要的数据结构: Series 和 DataFrame 。 S

    2024年02月12日
    浏览(34)
  • 数据分析--Numpy初级(一)

    Numpy是数据分析的基础库,它支持大量的维度计算与矩阵运算。同时他也是一个运行速度非常快的数学库,主要用于数组计算,具有线性代数、傅里叶变换、随机数生成等功能。 Numpy最重要的一个特点就是其N维数组对象ndarray他是一系列同类型数据的集合,创建一个ndarray对象

    2024年02月08日
    浏览(31)
  • 数据分析三剑客之Numpy

    数据分析三剑客 :Numpy,Pandas,Matplotlib NumPy (Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。 numpy是基于c语言开发,所以这使得numpy的运行速度很快,高效率运行就是numpy的一大优势。 首先·我们要

    2024年02月09日
    浏览(29)
  • [数据分析大全]基于Python的数据分析大全——Numpy基础

    NumPy 的全称为 Numeric Python,它是 Python 的第三方扩展包,主要用来计算、处理一维或多维数组。   步入8月了,7月时因为项目所需,自学了 深度学习 相关的内容,现在 已经把项目所需要的神经网络框架搭建起来了,输入输出也都归一化了,模拟误差也加上了,图像的参数

    2024年02月14日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包