numpy 中数组的广播
数组与标量
数组与标量进行算术运算,相当于先将标量广播成相同形状的数组,然后再进行算术运算。
import numpy as npa1 = np.array([1,3,5])print(a1+2)return [3,5,7]
数组与数组
数组与不同形状的数组进行算术运算时,会发生广播,需遵守以下广播原则
(1)先比较形状,再比较维度,最后比较对应轴长度
(2)如果两个数组维度不相等,会在维度较低数组的形状左侧填充1,直到维度与高维数组相等
(3)如果两个数组维度相等时,要么对应轴的长度相同要么其中一个轴长度为1,则兼容的数组可以广播,长度为1的轴会被扩展。
#%% 数组与数组
a2 = np.array([1,2]) #(1,2) array([1,2],[1,2])b2 = np.array([[3,4],[5,6]]) #(2,2)print(a2+b2)
返回 [[4 6][6 8]]
#%% 数组与数组a2 = np.array([1,2]) #(1,2) array([1,2],[1,2])b2 = np.array([[3],[4]])#(2,1) array([3,3],[4,4])print(a2+b2)
返回
[[4 5][5 6]]#%% 数组与数组a2 = np.array([1,2]) #(1,2) array([1,2],[1,2])b2 = np.array([[3,4,5],[6,7,8]])#(2,3) array([3,3],[4,4])print(a2+b2)
不能计算
import numpy as npa = np.array([[1,2,3],[4,5,6],[7,8,9]])np.save('array_save', a)b = np.load('array_save.npy')
print(b)#%% saveZ
a1 = np.array([1,2,3,4,5,6,7])a2 = np.array([[1,2,3],[4,5,6],[7,8,9]])np.savez('array_savez',array_a=a1,array_b=a2)b1 = np.load('array_savez.npz')
print(b1['array_a'])
print(b1['array_b'])#%% saveZ
a1 = np.array([1,2,3,4,5,6,7])a2 = np.array([[1,2,3],[4,5,6],[7,8,9]])np.savez_compressed('array_savez_compressed',array_a=a1,array_b=a2)b2 = np.load('array_savez_compressed.npz')print(b2['array_a'])
print(b2['array_b'])