Numpy的广播机制详解(broadcasting)

Posted Data+Science+Insight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Numpy的广播机制详解(broadcasting)相关的知识,希望对你有一定的参考价值。

Numpy的广播机制详解(broadcasting)

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

如果两个数组 a 和 b 形状相同,即满足 a.shape == b.shape,那么 a*b 的结果就是 a 与 b 数组对应位相乘。这要求维数相同,且各维度的长度相同。

若广播条件不满足,抛出 "ValueError: frames are not aligned" 异常。

通俗的理解就是:将两个数组的维度大小右对齐,然后比较对应维度上的数值,如果数值相等或其中有一个为1或者为空,则能进行广播运算,并且输出的维度大小为取数值大的数值。否则不能进行数组运算。

假定只有两个数组进行操作,即A+B、A*B这种情况。

1. 两个数组各维度大小从后往前比对均一致

A = np.zeros((2,5,3,4))
B = np.zeros((3,4))
print((A+B).shape) # 输出 (2, 5, 3, 4)

A = np.zeros((4))
B = np.zeros((3,4))
print((A+B).shape) # 输出(3,4)

2. 两个数组存在一些维度大小不相等时,有一个数组的该不相等维度大小为1

这是

以上是关于Numpy的广播机制详解(broadcasting)的主要内容,如果未能解决你的问题,请参考以下文章

Android学习笔记-Broadcast01-详解广播机制

Android学习笔记-Broadcast01-详解广播机制

Android学习笔记-Broadcast01-详解广播机制

详解广播机制,Broadcast Receiver,Android进阶必备知识。

详解广播机制,Broadcast Receiver,Android进阶必备知识。

Numpy中的广播(Broadcasting)