NumPy 的广播机制是其在处理多维数组时一个非常强大的功能。它允许我们在进行数组操作时,无需显式地进行循环,从而提高代码的可读性和执行效率。
什么是广播?
广播是 NumPy 自动扩展数组维度以匹配操作数的过程。当进行数组运算时,如果两个数组的维度不完全相同,NumPy 会自动将较小的数组进行扩展,以匹配较大的数组的形状。
广播规则
以下是一些基本的广播规则:
- 形状相同:如果两个数组的形状完全相同,则它们可以按元素逐个相加、相减、相乘等。
- 一个维度为 1:如果一个数组的某个维度长度为 1,而另一个数组在该维度上的长度不为 1,则 NumPy 会自动将长度为 1 的数组在该维度上重复,直到两个数组在该维度上的长度相同。
- 所有维度长度相同:如果一个数组的某个维度长度为 1,而另一个数组在该维度上的长度为 0,则 NumPy 会自动将长度为 1 的数组在该维度上重复,直到两个数组在该维度上的长度相同。
例子
假设我们有两个数组:
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
我们可以将 a
重复两次,以便与 b
进行逐元素相加:
c = np.array([1, 2, 3, 1, 2, 3])
result = a + b
输出结果为:
array([5, 7, 9, 5, 7, 9])
扩展阅读
想要了解更多关于 NumPy 的知识,可以访问我们的 NumPy 教程。
NumPy