Numpy广播机制 (2020.04.08)

1.何为广播机制

不规则数组相加机制

x_02 = np.array([1, 2, 3, 4])
x_02+1    # array([2, 3, 4, 5])

x_01=np.array([[ 0,  1,  2,  3],
               [ 4,  5,  6,  7],
               [ 8,  9, 10, 11]])
x_02 = np.array([1, 2, 3, 4])

#输出
array([[ 1,  3,  5,  7],
       [ 5,  7,  9, 11],
       [ 9, 11, 13, 15]])

2. 三种广播规则

规则1:如果两个数组形状中,只有其中一个维度相同,另一个维度不一致但是其中一个数组有维度为1,则可以补齐:

规则1

np.arange(3)+5
#array([5, 6, 7])
规则1

规则2:如果两个数组的形状在任何一个维度都不匹配,但两个数组都有其中以维度为1,则数组的形状会沿着维度为1的维度扩展,以匹配另外一个数组形状。**

规则2

np.ones((1,3))+np.ones((2,1))
#array([[2., 2., 2.],
#      [2., 2., 2.]])

规则3:如果两个数组的形状在任何一个维度上都不匹配并且没有任何一个维度等于1,会广播错误。

>>> np.ones((3,3))+np.ones((2,3))
输出:
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-6-6f99938fd268> in <module>
----> 1 np.ones((3,3))+np.ones((2,3))

ValueError: operands could not be broadcast together with shapes (3,3) (2,3) 

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数组索引是指使用方括号([])对数组值进行索引。有很多选项来索引,这使numpy索引很强大,但功能上的强大也带来一...
    领悟悟悟阅读 698评论 0 1
  • NumPy是Python中关于科学计算的一个类库,在这里简单介绍一下。 来源:https://docs.scipy...
    灰太狼_black阅读 1,256评论 0 5
  • 达生之情者,不务生之所无以为;达命之情者,不务知之所无奈何。养形必先之以物,物有余而形不养者有之矣。有生必先...
    象浦阅读 456评论 0 8
  • 15年真题-口语交际-对话1
    fdd1430283fe阅读 250评论 0 1
  • 转眼间,又一个六一儿童节过去了,想了想,我们还有最后一个儿童节了。时间一去不复返,俗话说:“百川东到海,何时...
    乄紫胤_梦回三笙阅读 287评论 1 3