在 Python 中使用 NumPy 数组进行广播
pythonserver side programmingprogramming
我们知道,如果数组大小相等且满足特定要求,则不同数组之间的算术运算每月都会发生一次。但在某些情况下,我们可以接受大小不等的数组,并通过用较小的 ndim 填充数组并在其形状中前置"1"来增强其中一个数组,从而对它们应用算术运算。因此,基本上,广播和数组意味着将其形状更改为任何所需的形状。
数组广播规则
ndim 小于另一个的数组在前面附加"1"在其形状中。
输出形状的每个维度的大小是该维度中输入大小的最大值。
如果输入在特定维度上的大小与输出大小匹配或其值恰好为 1,则可以在计算中使用输入。
如果输入的维度大小为 1,则该维度中的第一个数据条目将用于该维度上的所有计算。
示例
以下示例展示了使用 numpy 数组进行数组操作期间广播是如何发生的。
import numpy as np a = np.array([[0.0,0.0,0.0],[10.0,10.0,10.0],[20.0,20.0,20.0],[30.0,30.0,30.0]]) b = np.array([1.0,2.0,3.0]) print 'First array:' print a print '\n' print 'Second array:' print b print '\n' print 'First Array + Second Array' print a + b
输出
运行上述代码得到以下结果 −
First array: [ [ 0. 0. 0.] [ 10. 10. 10.] [ 20. 20. 20.] [ 30. 30. 30.] ] Second array: [ 1. 2. 3.] First Array + Second Array [ [ 1. 2. 3.] [ 11. 12. 13.] [ 21. 22. 23.] [ 31. 32. 33.] ]