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