NumPy广播:在(M,A,B,N)形状数组中的元素(a,b)中添加一个ndarray

Posted

技术标签:

【中文标题】NumPy广播:在(M,A,B,N)形状数组中的元素(a,b)中添加一个ndarray【英文标题】:NumPy Broadcast: Adding an ndarray across elements (a,b) in (M,A,B,N) shaped array 【发布时间】:2016-08-17 23:01:47 【问题描述】:

我有一个带有 rgb 像素的图像数组,因此该数组的尺寸为 (image_count,height,width,3)

我正在通过我在侧面计算的随机量调整单个像素,形状为:(image_count,3)

现在,我有一个解释循环来添加对单个像素的调整。


我如何广播这个添加,以便对每个像素执行以下操作:

image_set[i,h,w,:] += pixel_adj[i,:]

【问题讨论】:

【参考方案1】:

pixel_adj的适当尺寸处引入带有None/np.newaxis的新轴,使其成为4D,就像image_set一样,然后执行求和调整以引入broadcasting,就像这样-

image_set += pixel_adj[:,None,None,:]

【讨论】:

以上是关于NumPy广播:在(M,A,B,N)形状数组中的元素(a,b)中添加一个ndarray的主要内容,如果未能解决你的问题,请参考以下文章

NumPy广播

初探numpy——广播和数组操作函数

Numppy | 10 广播(Broadcast)

NumPy的使用

Element Wise函数在两个不同形状的numpy数组中的条目

NumPy之:理解广播