关于广播机制,小编我也是入门级别的,只能把吴学阀的东西来给大家展现一下,有什么不足或者需要补充的地方,希望大家可以踊跃留言,小编必定虚心接受、改进。
⎡⎣⎢⎢⎢ apple beef eggs potatoescarb 56.0 0.0 4.4 68.0protein 1.2 104.0 52.0 8.0fat 1.8 135.0 99.0 0.9⎤⎦⎥⎥⎥[ apple beef eggs potatoescarb 56.0 0.0 4.4 68.0protein 1.2 104.0 52.0 8.0fat 1.8 135.0 99.0 0.9]
以上定义了一个3*4的矩阵,行、列分别代表苹果、牛肉、鸡蛋、土豆和碳水化合物、蛋白质、脂肪。我们将求碳水化合物、蛋白质、脂肪分别对四种食物所占的比重。
使用“广播”机制来进行计算将会大大的减少代码量:
cal=A.sum(axis=0)cal=A.sum(axis=0)
axis代表对行或列进行操作,axis=0是对列进行操作,axis=1是对行进行操作,第五行为每列的求和值。

percentage=100∗A/(cal.reshape(1,4))percentage=100∗A/(cal.reshape(1,4)),cal.reshape是将cal变为一个1*4的矩阵,事实上,在经过上一步之后,cal已经是一个矩阵,这样写是为了防止出现错误,确保进行操作的是一个1*4的矩阵。以下得到了每种属性所占每种食物的比重。

对于广播来说,是为了更方便的计算矩阵来设计的,给定一个m*n的矩阵对该矩阵进行加减乘除操作,而目标矩阵是1*n或m*1或为实数的矩阵,都将通过广播机制转化为与给定矩阵相同维数的矩阵.