NumPy 广播基础

NumPyNumPyBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

本教程将介绍 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;

这将产生一个错误,因为你无法对形状不同的数组执行操作。

使用广播(Broadcasting)相加两个不同形状的一维数组

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)概念。广播是一种对多维数组执行数学运算的方法。我们还通过数组的相加和相乘操作演示了广播的工作原理。需要注意的是,广播只能在数组满足特定条件时进行。只有当广播不会导致信息丢失时,广播才会发生。