目录
numpy比较结果的逻辑组合
简单的 Numpy Broadcasting
Broadcasting(广播) 解决的是不同形状的矩阵(或者向量)之间的运算问题。
在代数运算中,不同形状的矩阵(或者向量)之间无法进行基本运算,但是在Numpy中,只要满足一般规则,这个运算的允许的。
Broadcasting的基本原则
整体而言,两个不同形状的矩阵(或者向量)进行基本运算,看两个矩阵(或者向量)的最后一个维度数。如果最后一个维度数是一致的,则“小矩阵”经过复制扩展,和“大矩阵”进行基本运算。
比如:
A.shape = (2 x 3) -> A.shape = (2 x 3)
b.shape = (3) -> b.shape = (1 x 3) -> 扩展为 (2 x 3)
特例是,如果小矩阵是 1*1 的,也就是只是一个数字,那么肯定可以通过复制扩展这一个数字,和大矩阵同维度,进而和大矩阵进行基本运算。
A.shape = (2 x 3) -> A.shape = (2 x 3)
b.shape = (1) -> 扩展为 (2 x 3)
但是,在以下例子中,b 无法 broadcasting 后和 A 进行运算
A.shape = (2 x 3)
b.shape = (1 x 2)