吴恩达深度学习:2.15python中的广播

1.Broadcasting example

  (1)下面矩阵描述了来自四种不同的100克碳水化合物,蛋白质和脂肪的卡路里数量

  

  比如说100g苹果所含的热量有56克来自碳水化合物,相比之下来自蛋白质和脂肪的卡路里数就很少了。相反,100g的牛肉,有104卡路里来自蛋白质,135克来自脂肪,没有卡路里来自碳水化合物。现在我们来计算一下四种食物中,有多少卡路里的百分比来自碳水化合物、蛋白质和脂肪。比如apple这一列,100g苹果有56+1.2+1.8=59卡路里,然后苹果中来自碳水化合物的卡路里百分比是56/59=94.9%,所苹果中的而大部分热量来自碳水化合物;相比之下,牛肉中的卡路里都是来自蛋白质和脂肪了。

  (2)接下来看看计算是怎么运行的,我们有3x4的矩阵,除以一个1x4的矩阵,那么怎么能够让一个3x4的矩阵来除以一个1x4的矩阵呢?接下来看看更多的广播的例子,如果取一个4x1的向量,让她和一个数字相加,numpy会自动将数字展开,变成一个1x4的向量,就像这样:

  这种广播对列向量和行向量一样有用。比如有一个2x3的矩阵,让它加上一个1x3的矩阵,numpy会赋值后面矩阵m次,将其变为mxn矩阵,而不是一个1x3的矩阵,比如下面的这个矩阵,numpy会复制两次,将其变为下面的这种形式:

 

  所以2x3的矩阵会让与他们相加,就会变为下面的这种形式:

(3)最后一个例子,无论有没有mxn的矩阵,都可以让其加上一个mx1的向量,或者1xm的矩阵,然后进行复制,

原文地址:https://www.cnblogs.com/bigdata-stone/p/10339765.html