Numpy中重要的广播概念
Numpy中重要的广播概念
广播:
简单理解为用于不同大小数组的二元通用函数(加、减、乘等)的一组规则
广播的规则:
- 如果两个数组的维度数dim不相同,那么小维度数组的形状将会在左边补1
- 如果shape的维度不匹配,但是有维度是1,那么可以扩展维度是1的维度匹配另一个数组;
- 如果shape的维度不匹配,但是没有任何一个维度是1,则匹配失败引发错误;
实例1:二维数组加一维数组
分析:a.shape=(2, 3), b.shape=(3,)
- 根据规则1,b.shape会变成(1, 3)
- 根据规则2,b.shape再变成(2, 3),相当于在行上复制
- 完成匹配
实例2:两个数组均需要广播
分析:a.shape为(3,1),b.shape为(3,):
- 根据规则1,b.shape会变成(1, 3)
- 根据规则2,b.shape再变成(3, 3),相当于在行上复制
- 根据规则2,a.shape再变成(3, 3),相当于在列上复制
- 完成匹配
实例3:不匹配的例子
分析:a.shape为(3,2),b.shape为(3,):
- 根据规则1,b.shape会变成(1, 3)
- 根据规则2,b.shape再变成(3, 3),相当于在行上复制
- 根据规则3,形状不匹配,但是没有维度是1,匹配失败报错
Numpy中重要的广播概念的更多相关文章
- Numpy中数组的乘法
Numpy中数组的乘法 按照两个相乘数组A和B的维度不同,分为以下乘法: 数字与一维/二维数组相乘: 一维数组与一维数组相乘: 二维数组与一维数组相乘: 二维数组与二维数组相乘: numpy有以下乘法 ...
- Numpy中的广播机制,数组的广播机制(Broadcasting)
这篇文章把numpy中的广播机制讲的十分透彻: https://jakevdp.github.io/PythonDataScienceHandbook/02.05-computation-on-arr ...
- NumPy中文文档搬砖(划掉)学习笔记(1)
原文地址 前言 况下加速Python中的操作运行时.适用于快速数值运算的一个选项是NumPy,它当之无愧地将自己称为使用Python进行科学计算的基本软件包. 当然,很少有人将50微秒(百万分之五十秒 ...
- [开发技巧]·Numpy中对axis的理解与应用
[开发技巧]·Numpy中对axis的理解与应用 1.问题描述 在使用Numpy时我们经常要对Array进行操作,如果需要针对Array的某一个纬度进行操作时,就会用到axis参数. 一般的教程都是针 ...
- numpy中array数组对象的储存方式(n,1)和(n,)的区别
资料:https://stackoverflow.com/questions/22053050/difference-between-numpy-array-shape-r-1-and-r 这篇文章是 ...
- Python数据分析--Numpy常用函数介绍(6)--Numpy中矩阵和通用函数
在NumPy中,矩阵是 ndarray 的子类,与数学概念中的矩阵一样,NumPy中的矩阵也是二维的,可以使用 mat . matrix 以及 bmat 函数来创建矩阵. 一.创建矩阵 mat 函数创 ...
- numpy中matrix的特殊属性
一.matrix特殊属性解释 numpy中matrix有下列的特殊属性,使得矩阵计算更加容易 摘自 NumPy Reference Release 1.8.1 1.1 The N-dimensiona ...
- WebLogic中的一些基本概念
WebLogic中的一些基本概念 WebLogic 中的基本概念 上周参加了单位组织的WebLogic培训,为了便于自己记忆,培训后,整理梳理了一些WebLogic的资料,会陆续的发出来,下面是一 ...
- Activity中UI框架基本概念
Activity中UI框架基本概念 Activity 是应用程序的基本组成部分,提供了可视的界面,UI容器, 与用户进行交互: 具体Acitivity是怎么样显示这些事视图元素以及响应事件交互的. 一 ...
随机推荐
- 利用Node.js编写跨平台的spawn语句
node const child = cp.spawn('npm', ['run', 'build']); 报错 events.js:182 throw er; // Unhandled 'error ...
- 迷你avalonjs框架
valon2是一款基于虚拟DOM与属性劫持的 迷你. 易用. 高性能 的 前端MVVM框架, 拥有超优秀的兼容性, 支持移动开发, 后端渲染, WEB Component式组件开发, 无需编译, 开箱 ...
- mapreduce 中 groupingComparator 用法
groupingComparator是对reduce输入的数据进行分组,比如 public int compare(WritableComparable a, WritableComparable b ...
- 控制台console不打印信息的解决办法
一直用控制台调试,突然不知道怎么回事看不到控制台输出的信息了: 需要检查下面几方面的问题: 1:我的就属于第一个问题,不知道怎么搜索的时候就改变了Filter; 2:确保以上选项是勾选的 3:点击设置 ...
- Chapter05 流程控制(Process Control)
目录 Chapter05 流程控制 5.1 顺序控制 5.2 分支控制 if-else 单分支基本语法: 双分支基础语法: 多分支基础语法 5.3 嵌套分支 5.4 switch分支结构 5.5 Fo ...
- JavaScript的事件循环机制浅析
前言 JavaScript是一门单线程的弱类型语言,但是我们在开发中,经常会遇到一些需要异步或者等待的处理操作. 类似ajax,亦或者ES6中新增的promise操作用于处理一些回调函数等. 概念 在 ...
- BSOJ5086题解
题意略. 我们设 \([x^k]G_n(x)\) 代表深度为 \(n\) 的树,距离为 \(k\) 的点对数量,\([x^k]F_n(x)\) 为深度为 $ n $ 的树中,深度为 \(k\) 的节点 ...
- 关于 Linux Polkit 权限提升漏洞(CVE-2021-4034)的修复方法
镜像下载.域名解析.时间同步请点击阿里云开源镜像站 近日,国外安全团队披露了 Polkit 中的 pkexec 组件存在的本地权限提升漏洞(CVE-2021-4034),Polkit 默认安装在各个主 ...
- 造成panic_oom问题的测试代码
写一个内核模块,来构造内核模块出现panic oom,主要采用vmalloc函数: #include <linux/module.h> #include <linux/mm.h> ...
- 我写的 Python 代码,同事都说好
原文链接: 我写的 Python 代码,同事都说好 人生苦短,我用 Python. 程序员的追求就是不写代码,早日财务自由.不对,一不小心把实话说出来了,应该是将代码写得简洁,优雅. Python 程 ...