numpy广播机制

在写代码计算梯度的过程中发现了一个以前忽略的点,numpy的广播机制。

在不同形状的矩阵进行对应元素的相加、相减、相乘、相除等操作时,numpy可以通过广播机制实现矩阵的自动扩展,从而实现矩阵运算。广播并不是任意进行的,主要有两种情况。

一种是数组的后缘维度相同,即这种情况:a1为(5,4),a2为(4,),a2会自动扩展成(5,4),或者a1为(5,4,3),a2为(5,4)或(3,),a2都会扩展成(5,4,3)。

另一种情况是存在长度为1的轴,例如:a1为(4,3),a2为(1,3),a2会自动扩展为(4,3),再或者a1为(5,4,3),a2为(1,4,3)或(5,1,3)或(5,4,1),a2均会分别沿0轴、1轴、2轴扩展成(5,4,3)。

所以通过numpy的广播机制,能够直接实现矩阵和向量的算数运算。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容