在Python中使用NumPy数组进行广播

我们知道,如果数组的大小相等,并且需要特定大小,那么每个数组之间的算术运算就会每月进行一次。但是在某些情况下,我们可以擦除不等大小的数据,仍然可以通过在数组中填充形状较小的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.]
]