broadcasting
机制的功能是为了方便不同shape
的array(numpy库的核心数据结构)进行数学运算。
当操作两个array
时,numpy会逐个比较它们的shape(构成的元组tuple),只有在下述情况下,两arrays
才算兼容:
- 相等
- 其中一个为1,(进而可进行拷贝拓展已至,shape匹配)
注意比较是从后往前对齐
Image (3d array): 256 x 256 x 3
Scale (1d array): 3
Result (3d array): 256 x 256 x 3A (4d array): 8 x 1 x 6 x 1
B (3d array): 7 x 1 x 5
Result (4d array): 8 x 7 x 6 x 5A (2d array): 5 x 4
B (1d array): 1
Result (2d array): 5 x 4A (2d array): 15 x 3 x 5
B (1d array): 15 x 1 x 5
Result (2d array): 15 x 3 x 5
ref:https://blog.youkuaiyun.com/lanchunhui/article/details/50158975