1. ホーム

numpy.concatenate()関数

2022-02-16 13:21:06
<パス

numpy.concatenate((a1,a2,...), axis=0) は、複数の配列を一度に連結する関数です。 a1,a2,... は配列型の引数です。

>>> a=np.array([1,2,3])
>>> b=np.array([11,22,33])
>>> c=np.array([44,55,66])
>>> np.concatenate((a,b,c),axis=0) # By default, axis=0 can be left out
array([ 1, 2, 3, 11, 22, 33, 44, 55, 66]) # For one-dimensional array splicing, the value of axis does not affect the final result


>>> a=np.array([[1,2,3],[4,5,6]])
>>> b=np.array([[11,21,31],[7,8,9]])
>>> np.concatenate((a,b),axis=0) # axis=0 for stitching by column
array([ 1, 2, 3],
       [ 4, 5, 6],
       [ 11, 21, 31],
       [ 7, 8, 9]])

>>> np.concatenate((a,b),axis=1) #axis=1 means the array of corresponding rows is concatenated
array([ 1, 2, 3, 11, 21, 31],
       [ 4, 5, 6, 7, 8, 9]])



np.concatenate((a,b))
Out[22]: 
array([[ 1, 2, 3],
       [ 4, 5, 6],
       [ 11, 21, 31],
       [ 7, 8, 9]])


np.concatenate((a,b),axis=-1)
Out[21]: 
array([[ 1, 2, 3, 11, 21, 31],
       [ 4, 5, 6, 7, 8, 9]])


軸引数が書かれていない場合、デフォルトは列によるスティッチングです。

np.concatenate((a,b))
Out[22]: 
array([[ 1, 2, 3],
       [ 4, 5, 6],
       [ 11, 21, 31],
       [ 7, 8, 9]])


axis = -1 ならば、行単位のスプライスです。

np.concatenate((a,b),axis=-1)
Out[21]: 
array([[ 1, 2, 3, 11, 21, 31],
       [ 4, 5, 6, 7, 8, 9]])


numpy.append()とnumpy.concatenate()の実行時間を比較すると、numpy.concatenate()がより効率的で大規模な配列連結に適していることがわかります。