📅  最后修改于: 2023-12-03 15:18:03.511000             🧑  作者: Mango
NumPy是Python中最受欢迎的科学计算库之一,它提供了大量的高效矩阵计算操作方法,其中最重要的概念之一就是广播。
广播是一种强有力的NumPy机制,它可以通过适当地扩展数组使它们具有相同的形状,从而进行操作。它是一种在不创建显式副本的情况下,对不同形状的数组进行算术运算的方式。使用广播功能时,NumPy会自动将不同形状的数组转换为共同形状的数组。
要进行广播,NumPy遵循一组严格的规则:
假设我们有两个数组a和b,并想要对它们进行相加。我们可以直接使用“+”操作符并得到结果。这两个数组的形状需要相同,否则就需要使用广播规则来进行匹配。
import numpy as np
# We will try to add two arrays A and B, using "+" operator.
A = np.array([ [1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
B = np.array([ [8, 7, 6],
[5, 4, 3],
[2, 1, 0]])
# 直接相加,因为A和B形状相等(3,3)
print("Adding two arrays: ")
print(A + B)
# 改变B的形状,因为B的行数和A一样,转换成(3,1)
B = np.array([8, 7, 6])
print("\nArray B:")
print(B)
# 通过广播功能,添加两个数组A和B。
print("\nAdding two arrays after broadcasting: ")
print(A + B)
结果:
Adding two arrays:
[[ 9 9 9]
[ 9 9 9]
[ 9 9 9]]
Array B:
[8 7 6]
Adding two arrays after broadcasting:
[[ 9 9 9]
[12 12 12]
[15 15 15]]
注释: