美文网首页
Numpy广播机制 (2020.04.08)

Numpy广播机制 (2020.04.08)

作者: 似海深蓝 | 来源:发表于2020-04-08 12:01 被阅读0次

    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广播机制 (2020.04.08)

          本文链接:https://www.haomeiwen.com/subject/ruozphtx.html