机器学习与目标检测(数组相加:形状需要满足哪些条件)
- 机器学习与目标检测(数组相加:形状需要满足哪些条件)
- 一、形状相同
- 1.1、形状相同示例程序
- 二、符合广播机制
- 2.1、符合广播机制的描述
- 2.2、符合广播机制的示例程序
机器学习与目标检测(数组相加:形状需要满足哪些条件)
数组相加-形状需要满足的条件如下所示
一、形状相同
1.1、形状相同示例程序
形状相同示例程序如下所示
arr_a = np.array([1, 2, 3, 4])
arr_b = np.array([6, 7, 8, 9])
arr_add = np.add(arr_a, arr_b)
print('1 数组形状相同')
print('arr_a = ', arr_a)
print('arr_b = ', arr_b)
print('np.add(arr_a, arr_b) = ', arr_add, '\n')
形状相同示例程序运行如下所示
1 数组形状相同
arr_a = [1 2 3 4]
arr_b = [6 7 8 9]
np.add(arr_a, arr_b) = [ 7 9 11 13]
二、符合广播机制
2.1、符合广播机制的描述
符合广播机制的描述如下所示
- (1):如果两个数组的维度数不相同,那么小维度数组的形状将会在最左边补 1。
- (2): 如果两个数组的形状在任何一个维度上都不匹配,那么数组的形状会沿着维度 为 1 的维度扩展以匹配另外一个数组的形状。
2.2、符合广播机制的示例程序
符合广播机制的示例程序如下所示
print('2 符合广播机制')
arr_a = np.array(range(12)).reshape(3, 4)
arr_b = np.array([1, 2, 3, 4])
arr_a_ndim = arr_a.ndim
arr_b_ndim = arr_b.ndim
arr_add = np.add(arr_a, arr_b)
print('arr_a = \n', arr_a)
print('arr_b = ', arr_b)
print('arr_a_ndim = ', arr_a_ndim)
print('arr_b_ndim = ', arr_b_ndim)
print('np.add(arr_a, arr_b) = \n', arr_add, '\n')
符合广播机制的示例程序运行如下所示
arr_a =
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
arr_b = [1 2 3 4]
arr_a_ndim = 2
arr_b_ndim = 1
np.add(arr_a, arr_b) =
[[ 1 3 5 7]
[ 5 7 9 11]
[ 9 11 13 15]]