numpy配列合成[np.c_,np.r_,no.column_stack]

9090 ワード

《啓蟄》誰が剣の嫁入り道具を持って身を包んで貧しい夜色を羽織って殺機を水没させたのか.
np.r_, np.c_
実際のデータ処理では,操作は2次元データであるため,ここでは最も簡単な形式である.
np.c_
npに等しい.r_[’-1’,array,array]は、最後の軸でデータのマージを行うshapeの最後の次元に相当する.2 Dでは最後の軸が列で、最初の軸が行です.
    a = np.array([[0, 1, 2], [3, 4, 5]])
    np.c_[a, a]
    
    # out: 
    '''
    array([[0, 1, 2, 0, 1, 2],
       [3, 4, 5, 3, 4, 5]])
       '''
       
    np.r_['-1', a,a]

   # out:
      '''
   rray([[0, 1, 2, 0, 1, 2],
       [3, 4, 5, 3, 4, 5]])
   '''
#       :
np.c_[np.array([[1,2,3]]), 0, 0, np.array([[4,5,6]])]

#     :
'''
array([[1, 2, 3, 0, 0, 4, 5, 6]])
'''


np.r_[‘param’, array[,array,…]]
param:
  • -1最後の軸でマージ、<=>np.c_[array[,array,...]]
  • 0最初の軸で
  • をマージ
        a = np.array([[1,2,3]])
        
        a
       ''' array([[1, 2, 3]])'''
        
        np.r_['-1', a, a]
        '''
        array([[1, 2, 3, 1, 2, 3]])
        '''
       np.r_['0', a, a]
       
       '''
       array([[1, 2, 3],
           [1, 2, 3]])
       '''
     
    

    ポイント:
    わかりました.これはよく理解しなければなりませんが、プロジェクトで最もよく使われるのは、1つの2次元配列に行を追加したり、1つの1次元配列を1つの2次元配列の列に結合したり、1つの2次元配列に新しい列を追加したりすることです.例えば、新しい属性や特徴値を追加したりします.
        a = np.array([[1, 2, 3], [4, 5, 6]])
       # 2 * 3     
       a
    

    out:
    array([[1, 2, 3], [4, 5, 6]])
        #      
    	add_columns = [7, 8]
    	# option 1:
    	np.c_[a, add_columns]
    	# option 2
    	np.column_stack((a, add_columns))
    

    out:
    array([[1, 2, 3, 7], [4, 5, 6, 8]])
  • 新しいサンプルを追加するなど、2 D配列に行を追加するのは面倒ですが、追加した配列が2 D配列でない場合は、2 D配列
  • に変換する必要があります.
     add_rows = [7, 8, 9]
     add_rows = np.array(add_rows).reshape(1, -1)
     
     add_rows
     # out:  
     '''array([[7, 8, 9]])'''
     
     np.concatenate((a, add_rows), axis=0)
    #out:
    '''array([[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]])
    '''  
     
     np.r_['0', a , add_rows]
     #out:
     '''array([[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]])
     '''