数组广播
数组与标量或者不同形状的数组进行算术的时候,就会发生数组广播
一、数组与标量
数组与标量进行算术运算,相当于先将标量广播成相同形状的数组,然后再进行算术运算。
二、数组与数组
数组与不同形状的数组进行算术运算时,会发生广播,需遵守以下广播原则
1、先比较形状,再比较维度,最后比较对应轴长度。
2、如果两个数组维度不相等,会在维度较低数组的形状左侧填充1,直到维度与高维数组相等。
3、如果两个数组维度相等时,要么对应轴的长度相同,要么其中一个轴长度为1,则兼容的数组可以广播,长度为1的轴会被扩展。
三、代码练习
import numpy as np
# %% 数组与标量广播
a1 = np.array([1,2,3])
print(a1+2)
# %% 数组与数组广播
a1 = np.array([1,2])
b1 = np.array([[3,4],
[5,6]])
print(a1+b1)
print("---------------------")
a2 = np.array([[1,2]])
b2 = np.array([[3],
[4]])
print(a2+b2)
print("---------------------")
# %% 数组与数组(不兼容)
a2 = np.array([[1,2]])
b2 = np.array([[3,4,5],
[6,7,8]])
print(a2+b2)