教程 > Numpy 教程 > NumPy 教程 阅读:15

NumPy Broadcasting 广播

NumPy Broadcasting 广播是指 NumPy 在算术运算期间处理不同形状的数组的能力。数组的算术运算通常是在相应的元素上完成的。如果两个数组的形状完全相同,则这些操作将顺利执行。

import numpy as np 
 
a = np.array([1,2,3,4]) 
b = np.array([10,20,30,40]) 
c = a * b 
print (c)

运行示例

输出结果为:

[ 10  40  90 160]

当运算中的 2 个数组的形状不同时,numpy 将自动触发广播机制。如:

import numpy as np 
 
a = np.array([[ 0, 0, 0],
           [10,10,10],
           [20,20,20],
           [30,30,30]])
b = np.array([1,2,3])
print(a + b)

运行示例

上述代码执行结果如下

[[ 1  2  3]
 [11 12 13]
 [21 22 23]
 [31 32 33]]

下面的图片展示了数组 b 如何通过广播来与数组 a 兼容。

numpy 广播数组兼容

4x3 的二维数组与长为 3 的一维数组相加,等效于把数组 b 在二维上重复 4 次再运算:

import numpy as np 
 
a = np.array([[ 0, 0, 0],
           [10,10,10],
           [20,20,20],
           [30,30,30]])
b = np.array([1,2,3])
bb = np.tile(b, (4, 1))  # 重复 b 的各个维度
print(a + bb)

运行示例

上述代码执行结果如下

[[ 1  2  3]
 [11 12 13]
 [21 22 23]
 [31 32 33]]

查看笔记

扫码一下
查看教程更方便