广播机制在numpy中居于非常重要的位置,也是numpy高效计算的秘密武器,有必要进行深入彻底的理解,简而言之,它的规则如下:

  • 规则1:如果两个数组在维度上不一样,那么维度低的数组用1(1个或者多个)从左边开始填充。
  • 规则2:如果维度数一样,在每个维度上的形状数不一样,那么该维度上的形状数为1的拉伸来与对方的形状数一样
  • 规则3:如果彼此任何维度上的形状数不一致,并且不为1,则报错

例1

M的形状是(2,3)

a的形状是(3,)

根据规则1,先用“1”填充a最左边的维度,填充成(1,3)

然后再根据规则2,对同一维度但形状不同而形状是1的进行拉伸,

所以a广播变成了[[0,1,2],[0,1,2]],此时维度拉伸成了(2,3)

最后再相加。

例2

a.shape-->(3,1)

b.shape--->(3,)

首先b填充为(1,3)

然后a拉伸为(3,3)

b拉伸为(3,3)

附np.newaxis用法

np.newaxis的作用主要就是对数组进行升维,一般配合:使用,而:可以理解为'遍历第n层维度',然后'进入下一维度',np.newaxis可理解为在遍历第n维前,对第n维整体再加一个维度,即在外面'套上'[...]

Numpy 的广播机制的更多相关文章

  1. numpy中的广播机制

    广播的引出 numpy两个数组的相加.相减以及相乘都是对应元素之间的操作. import numpy as np x = np.array([[2,2,3],[1,2,3]]) y = np.arra ...

  2. numpy和tensorflow中的广播机制

    广播的引出 numpy两个数组的相加.相减以及相乘都是对应元素之间的操作. import numpy as np x = np.array([[2,2,3],[1,2,3]]) y = np.arra ...

  3. [开发技巧]·Numpy广播机制的深入理解与应用

    [开发技巧]·Numpy广播机制的深入理解与应用 1.问题描述 我们在使用Numpy进行数据的处理时,经常会用到广播机制来简化操作,例如在所有元素都加上一个数,或者在某些纬度上作相同的操作.广播机制很 ...

  4. Numpy常用概念-对象的副本和视图、向量化、广播机制

    一.引言 在我们操作数组的时候,返回的是新数组还是原数组的链接,我们就需要了解对象副本和视图的区别. 向量化和广播是numpy内部实现的基础. 二.对象副本和视图 我们应该注意到,在操作数组的时候返回 ...

  5. Numpy 系列(八)- 广播机制

    什么是广播 我们都知道,Numpy中的基本运算(加.减.乘.除.求余等等)都是元素级别的,但是这仅仅局限于两个数组的形状相同的情况下. 可是大家又会发现,如果让一个数组加1的话,结果时整个数组的结果都 ...

  6. NumPy 广播机制(Broadcasting)

    一.何为广播机制 a.广播机制是Numpy(开源数值计算工具,用于处理大型矩阵)里一种向量化数组操作方法. b.Numpy的通用函数(Universal functions) 中要求输入的两个数组sh ...

  7. numpy广播机制,取特定行、特定列的元素 的高级索引取法

    numpy广播机制,取特定行.特定列的元素 的高级索引取法 enter description here enter description here

  8. Numpy中的广播机制,数组的广播机制(Broadcasting)

    这篇文章把numpy中的广播机制讲的十分透彻: https://jakevdp.github.io/PythonDataScienceHandbook/02.05-computation-on-arr ...

  9. Numpy | 10 广播(Broadcast)

    广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行. 下面的图片展示了数组 b 如何通过广播来与数组 a 兼容. 4x ...

  10. tensorflow的广播机制

    TensorFlow支持广播机制(Broadcast) TensorFlow支持广播机制(Broadcast),可以广播元素间操作(elementwise operations).正常情况下,当你想要 ...

随机推荐

  1. QT5笔记: 30. 二进制文件读写

    Qt 预定义类型文件 *.stm 标准二进制文件 *.dat 例子: MainWindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include & ...

  2. git上传大文件!git push 报错 ! [remote rejected] main -> main (pre-receive hook declined) error_ failed to push some refs to 'xxx

    前言 今天在用git push项目的时候,出现了一个报错,记录一下解决方案,以后报同样的错误可以回来看. 错误信息 下面是git push的详细报错信息: 20866@DESKTOP-7R0VL04 ...

  3. 基于ThreeJs的大屏3D地图(二)——气泡图、渐变柱体与热力图

    前提 上一篇文章中我们完成了地图区块模型的渲染,在此基础之上本篇来讲解气泡图.3D柱形图以及3D热力图的实现方式. 首先,为了更好的关注点分离及与地图渲染模块的解耦,我们可以把所有类型的可视化元素抽象 ...

  4. 关闭 ReportCrash 进程防止CPU占用率过高 [MacBook]

    关闭 ReportCrash 的原因 自己 MacBook Pro 总是过载,机器很热.结果通过看进程 top 命令,看到 ReportCrash 占用了了过高的 CPU,而且好像我用不上.于是乎,得 ...

  5. Mysql导入数据的时候报错Unknown collation: 'utf8mb4_0900_ai_ci'什么问题?

    最近从线上把数据导出来想搭建到本地的时候报了这么一个错? [ERR] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci' 这个错误究竟是什么原因影响的呢? 是 ...

  6. Django实战项目-学习任务系统-任务管理

    接着上期代码框架,开发第3个功能,任务管理,再增加一个学习任务表,用来记录发布的学习任务的标题和内容,预计完成天数,奖励积分和任务状态等信息. 第一步:编写第三个功能-任务管理 1,编辑模型文件: . ...

  7. 使用Win32控制台实现socket通信

    本示例使用Win32控制台实现socket通信 ,可多个客户端同时连接服务器. 服务端代码: #include <iostream> #include <winsock2.h> ...

  8. Windows 终端远程连接 Ubuntu

    博客地址:https://www.cnblogs.com/zylyehuo/ 查看 ip 的方式参考以下链接 Ubuntu 下查看 ip - zylyehuo - 博客园 在 windows 终端中执 ...

  9. ASP.NET MVC 视图中文乱码

    以 Visual Studio 2017 Community 为例. 场景重现 某天新建了一个ASP.NET MVC项目,添加了一个视图文件写了个页面,页面内容中自然有中文, 字符集编码为<me ...

  10. 『Plotly实战指南』--饼图绘制高级篇

    在数据可视化的世界里,饼图是最直观的展示比例关系的工具之一. 然而,传统的静态饼图已经无法满足现代数据分析的需求.Plotly作为一款强大的可视化库,不仅提供了饼图丰富的基础功能,还支持交互效果和动态 ...