numpy 数组的广播机制
2019-05-09 10:09
183 查看
- 让所有的输入数组首先向其中位数最多的数组看起,shape属性中的不足部分通过在前面 加补齐
- 输出数组的shape属性是输入数组的shape属性在各个轴的最大值
- 如果两个数组的后缘维度(trailing dimension,即从末尾开始算起的维度)的轴长度相符,或其中的一方的长度为1,则认为它们是广播兼容的
- 当输入数组的某个维度的长度为 1 时,沿着此维度运算时都用此维度上的第一组值。
- 如果两个数组的输入维数相同,后缘维度相同,但是前面的元素个数不同,无法运算,比如a.shape=[2,2] b.shape = [3,2],则无法进行广播
例子:
import numpy as np; a = np.arange(6) a = np.reshape(a,[3,1,2]) b = np.array([[1,2],[2,3]]) print a+b '''[[[1 3] [2 4]] [[3 5] [4 6]] [[5 7] [6 8]]] '''
在这个过程中a.shape = (3,1,2),b.shape = (2,2)所以按照规则1,先将b补齐,b.shape=(1,2,2),再根据规则4,b变成b.shape = (3,2,2),a变成a.shape=(3,2,2),再进行运算
注意 两个后缘维度为1的数组相加会降维:
>>> a = np.array([[1,2],[2,3],[3,4]]) >>> a[:,0]+a[:,1] #array([3, 5, 7])
相关文章推荐
- numpy中的通用函数(ufunc)的广播机制(Broadcasting)依赖于数组shape属性
- [开发技巧]·Numpy广播机制的深入理解与应用
- Numpy的广播机制
- numpy的广播机制
- 详解Numpy中的广播原则/机制
- Numpy中的广播机制
- numpy的广播(broadcasting)机制
- numpy广播机制
- numpy的广播机制
- Numpy 修炼之道 (9)—— 广播机制
- Python的numpy中的 broadcasting(广播)机制
- numpy中的广播机制
- numpy 中的 broadcasting(广播)机制
- numpy学习——难点解析(一)多维数组的广播计算方式
- numpy广播机制,np.arange,np.linspace,np.unique解析
- numpy的广播机制(broadcast)
- C#源代码—委托的演示,利用多路广播机制优化
- 处女男学Android(十五)---Android 广播机制之Broadcast Receiver
- numpy中数组和矩阵的索引方法及不同点
- 通过实例模拟ASP.NET MVC的Model绑定机制:数组