介绍
本教程将介绍 NumPy 库中的广播(broadcasting)概念。广播是一种在不同维度的数组上执行数学运算的方法。
虚拟机使用提示
虚拟机启动完成后,点击左上角切换到 Notebook 标签页,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟,直到 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作的验证无法自动化。
如果在学习过程中遇到问题,随时向 Labby 提问。课程结束后请提供反馈,我们将及时为你解决问题。
两个相同形状的一维数组相加
import numpy as np
a = np.array([1,2,3,4])
b = np.array([2,7,8,9])
c = a+b;
print(c)
输出结果为:[ 3 9 11 13]
尝试将两个不同形状的一维数组相加
import numpy as np
a = np.array([4,5,6,7])
b = np.array([1,3,5,7,9,11,14])
c = a+b;
这将产生一个错误,因为你无法对形状不同的数组执行操作。
使用广播将两个不同形状的一维数组相加
import numpy as np
a = np.array([4,5,6,7])
b = np.array([10])
c = a+b;
print(c)
由于数组 b 被广播到数组 a 上,输出结果为 [14 15 16 17]。
将一维数组广播为二维数组
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([10, 20, 30])
print(a + b)
输出结果为:
[[11 22 33]
[14 25 36]]
一维数组被广播到二维数组的第二个轴上,并与每一列相加。
不同维度的数组相乘
import numpy as np
a = np.array([1, 2, 3])
b = np.array([[4, 5, 6], [7, 8, 9]])
print(a * b)
输出结果为:
[[ 4 10 18]
[ 7 16 27]]
一维数组被广播到二维数组的第一个轴上,并与每一行相乘。
总结
在本教程中,我们介绍了 NumPy 库中的广播(Broadcasting)概念。广播是一种对多维数组执行数学运算的方法。我们还通过数组的相加和相乘操作演示了广播的工作原理。需要注意的是,广播只能在数组满足特定条件时进行。只有当广播不会导致信息丢失时,广播才会发生。