首页 > 其他分享 >NumPy 广播(Broadcast)

NumPy 广播(Broadcast)

时间:2024-08-07 13:23:39浏览次数:13  
标签:a1 Broadcast np 广播 b1 数组 print array NumPy

广播 (Broadcast) 是numpy 对不同形状 (shape) 的数组进行数值计算处理的一种机制, 对数组的算术运算通常在相应的元素上进行。

#若两个数组a,b形状相同,即a.shape==b.shape——两个数组对应位相乘(其他运算符也行)
import numpy as np
a1= np.array([1,2,3,4])
b1= np.array([10,2,3,4])
print (a1 * b1)#[10  4  9 16]
print (a1+b1)#[11  4  6  8]
print (a1-b1)#[-9  0  0  0]
print (a1/b1)#[0.1 1.  1.  1. ]
print (a1%b1)#[1 0 0 0]
print (a1//b1)#[0 1 1 1]
print (a1+20)#[21 22 23 24]

当运算中的 2 个数组的形状不同时, numpy 将自动触发广播机制。         1.对应维度的长度相等,(即必须要小的那个数组行或列和大的数组某个对应维度相同,小的那个数组的形状会扩展使他们具有相同的形状,再进行运算         2.对应维度的长度其中一个为1,长度为1的维度会被扩展,这两个数组在该维度的形状将会被扩展为较大的长度         当两个数组在维度上的长度既不相等也不为1,即为不可广播的维度,会报错
#若两个数组a,b形状不同,numpy将触发广播机制
a2= np.array([[[1,1],[2,2]],[[3,3],[4,4]]])
b2= np.array([[1,2],[3,4]])
print (a2 * b2)
# [[[ 1  2]
#   [ 6  8]]
#
#  [[ 3  6]
#   [12 16]]]
print (a2 + b2)
# [[[2 3]
#   [5 6]]
#
#  [[4 5]
#   [7 8]]]
print("----------------")
a3= np.array([[[1,1],[2,2]],[[3,3],[4,4]]])
b3= np.array([1,2])
print (a3 * b3)
# [[[1 2]
#   [2 4]]
#
#  [[3 6]
#   [4 8]]]
print (a3 + b3)
# [[[2 3]
#   [3 4]]
# 
#  [[4 5]
#   [5 6]]]
print("----------------")
a4= np.array([1,2,3])
b4= np.array([1,2])
print (a4 + b4)#报错

标签:a1,Broadcast,np,广播,b1,数组,print,array,NumPy
From: https://blog.csdn.net/m0_68153457/article/details/140977333

相关文章

  • Cython将Numpy数组转为自定义结构体
    技术背景前面我们写过几篇关于Cython的文章,例如Cython计算谐振势、Cython与C语言的结合、Cython调用CUDAKernel函数。Cython有着非常Pythonic的编程范式,又具备着接近于C语言的性能,因此在很多对于性能有要求的Python软件中都会使用到Cython的性能优化。Cython的基本工作流程是,先......
  • 【NumPy 入门:常用函数与方法总结】
    文章目录前言1、np.array()函数2、np.arange函数(用于生成数值序列的函数)3、np.linspace函数(用于生成数值序列的函数)4、ndarray.dtype和ndarray.dtype.name属性5、矩阵乘积6、ravel方法、T和flat属性7、np.vstack和np.hstack函数8、column_stack函数9、np.r_和......
  • 如何在 ARM64 上的 Windows 上安装 SciPy 和 Numpy
    我需要numpy和scipy来执行一些信号分析。有人成功做到这一点吗?(我有兴趣在本机运行它,而不是通过virtualenv)。我的最终目标是从使用numpy和scipy的python脚本构建一个exe,可以在WinPE中运行进行测试。我已经成功安装了python3.11.2,并且能够进行numpy安装,但它......
  • Android 广播 Broadcast Receiver
    广播(Broadcast)是Android中的一种机制,允许应用程序之间传递消息。广播在Android中扮演着重要角色,能够在不同的组件间传递信息,无论是应用内部还是跨应用。下面我将详细解释广播的机制,并提供几个示例,按照难度逐步增加。广播机制详细解释1.广播的基本概念广播允许应用程序在系统中......
  • SciTech-BigDataAI-ImageProcessing-OpenCV-How to Use Background Subtraction Metho
    https://docs.opencv.org/3.4/d1/dc5/tutorial_background_subtraction.htmlHowtoUseBackgroundSubtractionMethodsNextTutorial:MeanshiftandCamshiftBackgroundsubtraction(BS)isacommonandwidelyusedtechniqueforgeneratingaforegroundmask(na......
  • pytorch学习笔记5 tensor 广播broadcasting
    不同shape直接加减,系统会自动做broadcasting操作先右对齐(小维度对齐)比如:Featuremaps:[4,32,14,14]Bias:[32,1,1]=>][1,32,1,1]=>[4,32,14,14]做到与Featuremaps的shape相同,才能进行相加广播扩展的时候只是做这样的操作,并不实质拷贝数据,以节省内存空间可广播的条件......
  • 测量加权 numpy 数组的平衡性
    我有玩家A和B,他们都与不同的对手交手。玩家对手几天前AC1AC2......
  • numpy公式小总结1
    umpy.array()产生的数据可以是一维,二维乃至n维numpy.matrix() 产生的数据是严格的二维numpy.abs()计算绝对值numpy.linalg.norm()计算范数,默认计算L2范数numpy.linsapce()指定的间隔内返回均匀间隔数组numpy.maximum()计算最大值numpy.meshgrid()生成网格化数据numpy.add()......
  • android.uid.system sendBroadcast失效的问题
    如果是系统应用android:sharedUserId="android.uid.system"报这个错 Callingamethodinthesystemprocesswithoutaqualifieduser:android.app.ContextImpl.sendBroadcast:1188android.content.ContextWrapper.sendBroadcast:解决添加如下权限<uses-permissionandroi......
  • numpy中的向量
    梯度在各自空间的每一个点上对应的物理量概有强度,也有方向,将这些既有大小又有方向的场抽像出来便可以得到向量场。松手瞬间小球运动方向在X1X2平面上的投影就是梯度下降方向也叫下山方向,它反方向叫梯度向量,也叫上山方向·行向量转置可得到列向量,转置运算符为b=aT可以用len(a)......