Python中的广播

Posted So istes immer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中的广播相关的知识,希望对你有一定的参考价值。

看一个例子:
在这里插入图片描述
求每种食物的碳水化合物,脂肪,蛋白质的Calorie占比(热量来自于碳水化合物,脂肪,蛋白质)

import numpy as np

A = np.array([[56.0, 0.0, 4.4, 68.0],
              [1.2, 104.0, 52.0, 8.0],
              [1.8, 135.0, 99.0, 0.9]])
print(A)
cal = A.sum(axis=0)
print("\\n每种食物每100g中的卡路里总量")
print(cal)
print("\\n碳水化合物,脂肪,蛋白质的Calorie占比")
percentage = 100*A/cal.reshape(1, 4)
print(percentage)

在这里插入图片描述
sum(axis=0)---->按列求和
sum(axis=1)---->按行求和
**reshape()**是数组array中的方法,作用是将数据重新组织
在这里插入图片描述
在上面的例子中,python的broadcasting体现在这句:
percentage = 100*A/cal.reshape(1, 4)
一个3x4的矩阵如何除以一个1x4的矩阵?
简单来说,broadcasting可以这样理解:如果你有一个mxn的矩阵,让它加减乘除一个1xn的矩阵,它会被复制m次,成为一个mxn的矩阵,然后再逐元素地进行加减乘除操作。同样地对mx1的矩阵成立。
在这里插入图片描述
举个例子:[1,2,3,4]+100 利用广播机制转化:[1,2,3,4]+[100,100,100,100]=[101,102,103,104]

以上是关于Python中的广播的主要内容,如果未能解决你的问题,请参考以下文章

我无法通过广播将数据发送到活动中的片段

将接口从片段传递到kotlin中的活动

在 python 中录制流媒体和保存网络广播

形状不匹配:无法将对象广播到单个形状如何解决python中的此类错误?

如何使用警报管理器将数据从片段传递到广播接收器

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