参考:https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
广播描述了在算术运算中numpy如何处理不同形状的数组之间的运算。其实现原理就是较小的数组在较大的数组上“广播”,扩展成和较大数组一样的形状,以便它们具有兼容的形状。并不是所有的数组间都能进行广播从而实现相互间的运算。
在两个数组上操作时,NumPy按照元素个数来比较它们的形状。该比较从尾部的维度开始,并依次向前。我们称两个维度是兼容的,当且仅当它们满足以下之一种情况:
(1)他们的维度信息按尾部对齐后是相等的,
(2)或者对齐后维度信息不相等,但其中之一的维度大小是1
如果以上的2种情况都不满足,那就无法在2个形状不同的数组上进行广播。
举一些例子:

Image  (3d array): 256 x 256 x 3
Scale  (1d array):             3
Result (3d array): 256 x 256 x 3
A      (2d array):  5 x 4
B      (1d array):      4
Result (2d array):  5 x 4
A      (3d array):  15 x 3 x 5
B      (3d array):  15 x 1 x 5
Result (3d array):  15 x 3 x 5
##################################
A      (3d array):  15 x 3 x 5
B      (2d array):       3 x 5
Result (3d array):  15 x 3 x 5
####################################
A      (3d array):  15 x 3 x 5
B      (2d array):       3 x 1
Result (3d array):  15 x 3 x 5

那如下的情形,就不能广播了

A      (1d array):  3
B      (1d array):  4 # trailing dimensions do not match
###############################################################
A      (2d array):      2 x 1
B      (3d array):  8 x 4 x 3 # second from last dimensions mismatched

numpy的广播机制相关推荐

  1. Numpy的广播机制详解(broadcasting)

    Numpy的广播机制详解(broadcasting) 广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行. 如果两个数 ...

  2. 【数据分析】reshape(-1,1)和numpy的广播机制

    在创建DataFrame的时候常常使用reshape来更改数据的列数和行数. reshape可以用于numpy库里的ndarray和array结构以及pandas库里面的DataFrame和Serie ...

  3. 详解Numpy的广播机制

    广播 Numpy中有很多强大的功能,广播便是其中之一.广播能帮助你对两个不同维度的数组执行操作.例如: import numpy as np a = np.array([[0, 1],[2, 3],[ ...

  4. Numpy 广播机制(两个不同维度对象进行数学运算)

    1. 数组相加 一个 2*5 维的数组对象和一个 1 维的数组对象进行相加,结果会怎样? In [1]: import numpy as npIn [2]: a = np.arange(10).res ...

  5. Python中的Numpy(4.矩阵操作(算数运算,矩阵积,广播机制))

    1.基本的矩阵操作: '''1.算数运算符:加减乘除''' n1 = np.random.randint(0, 10, size=(4, 5)) print(n1) n2 = n1 + 10 # 对n ...

  6. 【Python数据科学快速入门系列 | 04】Numpy四则运算、矩阵运算和广播机制的爱恨情仇

    这是机器未来的第43篇文章 原文首发地址:https://blog.csdn.net/RobotFutures/article/details/126493989 文章目录 1. 概述 2. 四则运算 ...

  7. Numpy数组的广播机制

    文章目录 前言 数组广播 广播机制的使用条件 前言 Numpy数组不需要循环遍历,即可对每个元素执行批量的算术运算操作(矢量化运算).当两个数组大小(Numpy.shape)不同时,进行算术运算会出现 ...

  8. python运算学习之Numpy ------ 数组操作:连接数组、拆分数组 、广播机制、结构化数组、文件贮存与读写、np.where、数组去重...

    数组的连接: 1 # 连接数组 2 A = np.zeros((3, 4)) 3 B = np.ones_like(A) 4 print(A, "\n-------分割符--------\n ...

  9. NumPy————NumPy广播机制的学习笔记

    1 致谢 感谢网友"FINTHON"的帮助, 原文链接如下: https://finthon.com/numpy-broadcast/ 2 前言 今天在学习K-means算法~ 想 ...

  10. 【Python学习记录】Numpy广播机制(broadcast)

    ✨ 博客主页:小小马车夫的主页 ✨ 所属专栏:Python学习记录 文章目录 一.什么是Numpy广播机制 二.Numpy广播应用 三.Numpy广播规则 一.什么是Numpy广播机制 在Numpy. ...

最新文章

  1. 【Network Security!】密码攻击的原理和方法
  2. 数据分析基础教程Numpy指南笔记
  3. Python学习—pyhton中的进程
  4. bootstrap学习网站
  5. 更便捷的画决策分支图的工具_做出更好决策的3个要素
  6. Wamp修改httpd.conf中的DocumentRoot不生效解决办法
  7. 02C++namespace命名空间
  8. Linux window查询网络端口
  9. iconfont 图标宽高出问题_IconFont使用注意点
  10. Openstack之路(四)计算服务Nova
  11. matlab中grid的用法
  12. 阿里云:发短信工具类
  13. 台式计算机用手机流量上网,台式机如何使用手机流量上网
  14. 手把手教你完成unity3D跑酷游戏系列(二)
  15. c语言买100只鸡,C语言经典问题--百钱买百鸡问题
  16. Windows --- 微信内网可用,但浏览器外网无法连接
  17. vue3.0的写法以及setup的用法
  18. Ubuntu移除PDF密码
  19. 纵观30年5000多部国产电视剧,豆瓣评分最低的演员原来是……
  20. 使用线程实现电子时钟

热门文章

  1. java逻辑运算符的使用
  2. eclipse java字体 太小,如何在Eclipse for Java文本编辑器中更改字体大小?
  3. html钢琴谱播放器,蛐蛐五线谱播放器(77player)
  4. qq数据泄露_用这个开源项目来解决你团队里猪队友泄露公司敏感信息的问题
  5. Java编程:二分查找算法(非递归)
  6. 实战HTML:动画背景网站登录界面
  7. 2020年GitHub上的7个顶级的Java开源目推荐(强烈安利)
  8. Ubuntu16.04下完美切换Python版本
  9. 论文笔记_S2D.38_2018-CVPR_DORN_用于单目深度估计的深度有序回归网络
  10. 论文笔记_CV_AD_A Survey of Computer Vision Research for Automotive Systems