python arrayにおける[a,b,c]の使用方法の詳細


numpyでもtensorflowでも、機械学習の過程でarrayの要素を抽出するために[]を使うことが多いが、多くの資源を探した後、比較的良い解釈がないことに気づいた.私は試した後にlist[]の使い方と解析を提供し、大家に役立つことを望んでいる.
このようなデータを例にとると
list1 = np.arange(24).reshape([2,3,4])
‘’‘
 [[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]
  ’‘’
  • [a,b,c]タイプ
  • arrayで位置[a,b,c]の要素を取り,あまり説明しない.
    print(list1[1,1,1]) 
    # 17
    
  • []に':'記号
  • が含まれています.
    のみ:の場合、ある次元のすべての要素を表します:前後に数字がある場合、その次元をリストとして、1:3はインデックス1,2を表す要素です.
    その関係は2つの例を示しており、その原理を考えることができます.
    print(list1[:,:,1]) #               ,       1    
    ‘’‘
    [[ 1  5  9]
     [13 17 21]]
    ’‘’
    
    print(list1[:,1:3,-1]) #            ,        1 2   ,             
    '''
    [[ 7 11]
     [19 23]]
    '''
    
  • Noneが現れた時
  • Noneは次元を追加するために使用され、どこに現れるかで1次元を追加します.
    print(list1)
    print(list1[None]) #            
    print(list1[None].shape)
    '''
    [[[ 0  1  2  3]
      [ 4  5  6  7]
      [ 8  9 10 11]]
    
     [[12 13 14 15]
      [16 17 18 19]
      [20 21 22 23]]]
    [[[[ 0  1  2  3]
       [ 4  5  6  7]
       [ 8  9 10 11]]
    
      [[12 13 14 15]
       [16 17 18 19]
       [20 21 22 23]]]]
    (1, 2, 3, 4)
    '''
    
    print(list1)
    print(list1[:,:,None])
    print(list1[:,:,None].shape)
    
    ‘’‘
    [[[ 0  1  2  3]
      [ 4  5  6  7]
      [ 8  9 10 11]]
    
     [[12 13 14 15]
      [16 17 18 19]
      [20 21 22 23]]]
    [[[[ 0  1  2  3]]
    
      [[ 4  5  6  7]]
    
      [[ 8  9 10 11]]]
    
    
     [[[12 13 14 15]]
    
      [[16 17 18 19]]
    
      [[20 21 22 23]]]]
    (2, 3, 1, 4)
    ’‘’
    

    Noneの役割はnp.newaxisの役割は同じですが、次の例を挙げてみましょう.
    print(list1)
    print(list1[None,])
    print(list1[None,].shape)
    print(list1[np.newaxis,:])
    print(list1[np.newaxis,:].shape)
    
    ‘’‘
    [[[ 0  1  2  3]
      [ 4  5  6  7]
      [ 8  9 10 11]]
    
     [[12 13 14 15]
      [16 17 18 19]
      [20 21 22 23]]]
    [[[[ 0  1  2  3]
       [ 4  5  6  7]
       [ 8  9 10 11]]
    
      [[12 13 14 15]
       [16 17 18 19]
       [20 21 22 23]]]]
    (1, 2, 3, 4)
    [[[[ 0  1  2  3]
       [ 4  5  6  7]
       [ 8  9 10 11]]
    
      [[12 13 14 15]
       [16 17 18 19]
       [20 21 22 23]]]]
    (1, 2, 3, 4)
    ’‘’