什么是python(numpy)的广播

 时间:2024-10-14 14:25:20

学习python的numpy模块时,广播的机制极大的方便了我们的编程,快来一起学习一下!

什么是python(numpy)的广播

工具/原料

python 3

numpy

理解

1、先用一个例子来笼统的展示下,比如我们想让一个二维向量中的每一个元素都变为原来的两倍。

什么是python(numpy)的广播

2、我们茧盯璜阝就可以直接乘以标量2,但是我们看不到的是:标量2在numpy的内部中完成了广播!可以这样理解:首先将标量2变成向量。

什么是python(numpy)的广播

3、然后在复制广播以匹配(3,2)的形状大小。请注意这里的复制并不代表numpy底殿秩痊肭层就是复制扩增数据,其实在底层C语言中,是使用循环迭代计算的,因此大大节约内存!

什么是python(numpy)的广播

4、最终就会变成下图的样式进行计算。

什么是python(numpy)的广播

5、当然我们如果想实现第一行变成2倍,第二行变成3倍的话,也能利用广播!这时候我们初始传入的就得是一个二维向量啦:二行一列。

什么是python(numpy)的广播

6、广播会以复制的方式匹配好形状。

什么是python(numpy)的广播

实践

1、我们对上面的样例操作进行以下实践,可以看到结果和我们预想的一致。

什么是python(numpy)的广播
什么是python(numpy)的广播

2、但是如果我们提供了一个不方便广播的数据,那么就会失败了。一般适合于广播的向量数据,有一个维度应该是“满”的。

什么是python(numpy)的广播

3、我转而又想,理论上只要维度成比例就可以了啊,但是实践来说是不可行的。所以当前可行的广播举措有:1. 标量2. 某一维度“满”且另一维度为1

什么是python(numpy)的广播
什么是python(numpy)的广播
  • 家用净水器哪款好?大部分家庭怎么选净水器?
  • 怎样辨别冬虫夏草的真假
  • 手机QQ怎么升级
  • 什么时候是去泸沽湖旅游的最佳时间?
  • 热门搜索
    社会主义价值观手抄报 我爱读书手抄报图片 创建卫生城市手抄报 大手牵小手手抄报 祖国我爱你手抄报 古诗文手抄报 关于重阳节的手抄报简单又漂亮 邪教手抄报 中秋节手抄报设计图 六一手抄报简单又好画