1. 程式人生 > >關於np.max及tf.reduce_mean的計算軸axis的理解

關於np.max及tf.reduce_mean的計算軸axis的理解

    np.max(axis=), tf.reduce_mean(axis=)的理解。下面以np.max作理解

    import numpy as np
    
    a = [[[1,2,3],[11,22,33]],[[10,20,30],[110,220,330]],[[101,201,301],[11001,22001,33001]],[[55,66,77],[550,660,770]]]
    
    b = np.array(a)
    
    print(b)
    
    [[[    1     2     3]
      [   11    22    33]]
    
     [[   10    20    30]
      [  110   220   330]]
    
     [[  101   201   301]
      [11001 22001 33001]]
    
     [[   55    66    77]
      [  550   660   770]]]
    
    print(b.max(axis=0))  
    
    [[  101   201   301]
     [11001 22001 33001]]
    
    print(b.max(axis=1))
    
    [[   11    22    33]
     [  110   220   330]
     [11001 22001 33001]
     [  550   660   770]]
    
    print(b.max(axis=2))
    
    [[    3    33]
     [   30   330]
     [  301 33001]
     [   77   770]]
    
    b.shape
    
    (4, 2, 3)
    

    shape=[x, y, z],從這裡結果看:

    1. axis=0,返回shape=[y,z]
      每個x中的全部[y,z]作比較,即每個x元素的比較
    2. axis=1,返回shape=[x,z]
      在每個x元素內,每個y中的z維度元組比較
    3. axis=2,返回shape=[x,y]
      在每個z中的內部元素做比較

    axis=n表示在n維比較各個元素,對應數值位置,最後消除了n維度。

    在這裡插入圖片描述