Numpy 数组运算与广播
发布时间:2023-07-01 15:14:18 所属栏目:教程 来源:
导读:对数组的算术运算通常在相应的元素上进行。 如果两个阵列具有完全相同的形状,则这些操作被无缝执行,这一小节将通过数组的运算来展示广播的一些特征。
1. 常见的两种广播途径
1.1 相同大小的数组计算
如果两个
1. 常见的两种广播途径
1.1 相同大小的数组计算
如果两个
对数组的算术运算通常在相应的元素上进行。 如果两个阵列具有完全相同的形状,则这些操作被无缝执行,这一小节将通过数组的运算来展示广播的一些特征。 1. 常见的两种广播途径 1.1 相同大小的数组计算 如果两个数组的维度完全一致,那么运算过程是两个数组相应元素的逐个计算。 案例 定义两个完全一致的数组: arr0 = np.array([[, , ], [, , ]])arr1 = np.array([[, , ], [, , ]]) 查看数组结构: arr0 out:array([[, , ],[, , ]])arr1 out:array([[, , ], [, , ]]) 查看加法运算的结果: arr0 + arr1 out:array([[ , , ], [ , , ]]) 查看乘法运算的结果: arr0 * arr1 out:array([[ , , ], [, , ]]) 可以看到,如果数组的维度一致,那么广播则是对应位置的元素运算。 1.2 数组与标量的计算 广播机制的存在,允许运算发生在不同维度的数组之间,其中最典型的场景,是数组的标量的计算。所谓的标量,我们可以简单地将之视为是0维的数组。 案例 对于加法运算: arr0 + out:array([[ , , ], [ , , ]]) 对于乘法运算 arr0 * out:array([[ , , ], [, , ]]) 对于幂运算: arr0 ** out:array([[ , , ], [, , ]], dtype=int32) 可以发现,对于上述效果,是数组每个元素分别与标量进行运算的结果。 直观地,我们发现,标量在这个二维数组上发生了传播(广播),标量沿着数组的两个维度扩散,直至扩散的结果和待计算的二维数组一致,最后进行计算。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |