机器学习与目标检测作业(数组相加:形状需要满足哪些条件)

在这里插入图片描述

机器学习与目标检测(数组相加:形状需要满足哪些条件)

在这里插入图片描述

数组相加-形状需要满足的条件如下所示

一、形状相同

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]]

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_47419053/article/details/129286634