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是怎么样显示这些事视图元素以及响应事件交互的. 一 ...
随机推荐
- 如何在shell脚本里使用sftp批量传送文件(二)
原文链接:http://bbs.chinaunix.net/archiver/tid-508290.html 主要步骤如下: 1.为运行shell脚本的本地用户生成密钥对2.将其中的公钥分发到sftp ...
- Activity通过bundle传递数据
从AActivity.java向BActivity.java传递数据: 建立AActivity.java文件建立bundle: 1 public class AActivity extends App ...
- Python:pandas(三)——DataFrame
官方文档:pandas之DataFrame 1.构造函数 用法 pandas.DataFrame( data=None, index=None, columns=None, dtype=None, ) ...
- 解决 “Project ERROR: Unknown module(s) in QT: webengine”以及“Your MaintenanceTool appears to be older than 3.0.2. .” 的办法
1.环境 Windows10,Qt5.8.0 2.问题描述 需要使用到WebEngineView组件,在工程.pro中增加webengine后,Qt Creator应用程序输出中打印了 Project ...
- JZ-031-从 1 到 n 整数中 1 出现的次数
从 1 到 n 整数中 1 出现的次数 题目描述 求出1-13的整数中1出现的次数,并算出100-1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此 ...
- Java集合多线程安全
线程安全与不安全集合 线程不安全集合: ArrayList LinkedList HashMap HashSet TreeMap TreeSet StringBulider 线程安全集合: Vecto ...
- SSM集成Thymeleaf
创建项目 Spring+SpringMVC+MyBatis的配置文件 数据库内容 dao层+service层+controller层 映射文件 前端简单页面 配置tomcat,运行显示 总体项目架构 ...
- Python selenium 三种等待方式解读
1. 强制等待第一种也是最简单粗暴的一种办法就是强制等待sleep(xx),强制让闪电侠等xx时间,不管凹凸曼能不能跟上速度,还是已经提前到了,都必须等xx时间.看代码: # -*- coding: ...
- Java 程序性能问题
● 1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 第一,控制资源的使用,通过线程同步 ...
- Mybatis——一级缓存与二级缓存
关于Mybatis的学习主要参考了狂神的视频 一级缓存 (1).使用范围:从sqlSession会话开始到结束 (2).使用:默认打开,无法关闭 (3).测试使用(需要打开日志观察数据库的连接情况): ...