numpy 的文档提到数组广播机制为:
When operating on two arrays, NumPy compares their shapes element-wise. It starts with the trailing dimensions, and works its way forward. Two dimensions are compatible when
they are equal, or
翻译过来就是,从两个数组地末尾开始算起,若轴长相等或者其中一个地维度为1,则认为是广播兼容的,否则是不兼容地。广播兼容的数组会在缺失的维度和长度为1的维度上进行。
例如:
a.shape | + | b.shape | c.shape | |
---|---|---|---|---|
(4, 1) | + | (1) | --> | (4, 1) |
(4, 1) | + | (3,) | --> | (4, 3) |
(2, 3, 4) | + | (1, 4) | --> | (2, 3, 4) |
(2, 3, 4) | + | (3, 1) | --> | (2, 3, 4) |
(2, 3, 4) | + | (2, 1, 1) | --> | (2, 3, 4) |
(2, 3, 4) | + | (3, ) | X | |
(4, 3) | + | (4,) | X | |
(4, 3) | + | (3,) | --> | (4, 3) |
(4, 3) | + | (3) | --> | (4, 3) |
本文链接:http://task.lmcjl.com/news/12464.html