【python】複数の配列を結合!numpy.concatenateの使い方!

 

この記事ではpython上で作成した複数の配列を結合する方法をご紹介していきます。

複数の画像を一つの画像にまとめる際などに役立つスキルです。

 

それではさっそくやっていきましょう。

※numpyというライブラリを使用します。インストールしていない方はまずはインストールから始めましょう。

 

スポンサーリンク

numpy-concatenateの基本的な使い方

以下がnumpy-concatenateの基本的な使い方をご紹介します。

 

XXX3=np.concatenate([XXX1,XXX2,…],D)

XXX3:結合後の配列名

XXX1:結合したい配列1

XXX2:結合したい配列2

D:結合する際の次元

 

結合する際、引数内に指定した配列の順番通りに結合されていきます。

結合する配列は3つ以上書いていてもOKです。

 

※結合する際の配列サイズにはよく注意しましょう。

例えば横方向に配列を結合する場合、1つ目の配列の行数が3、2つ目の配列の行数が4とかだと結合できませんので、結合前に次元がそろっているかはよく確認しましょう。

 

というわけで、使い方はこんな感じです。

 

実際の使用例を見ていきましょう。

 

スポンサーリンク

〇2つの配列を縦方向に結合した例

まずは2つの配列を縦方向に結合してみます。

 

以下がそのサンプルコードです。

import numpy as np

aaa=np.array([[1,2,3],
              [4,5,6],
              [7,8,9]])

bbb=np.array([[10,20,30],
              [40,50,60],
              [70,80,90]])

ccc=np.concatenate([aaa,bbb],0)
print(ccc)

 

こいつを実行すると以下の結果が出力されました。

numpy-concatenateを使って2つの配列を縦方向に結合した結果

問題なく縦方向に結合されていますね。

 

ちなみに12行目の記述順番を入れ替えたらどうなるかも見ておきましょう。

import numpy as np

aaa=np.array([[1,2,3],
              [4,5,6],
              [7,8,9]])

bbb=np.array([[10,20,30],
              [40,50,60],
              [70,80,90]])

ccc=np.concatenate([bbb,aaa],0)
print(ccc)

こいつを実行すると以下が出力されました。

numpy-concatenateを使って2つの配列を縦方向に結合した結果

先ほどと結合の順番が逆になっていますね。

 

スポンサーリンク

〇2つの配列を横方向に結合した例

次は横方向に結合してみましょう。

基本的には先ほどの例からconcatenateの引数を0(縦方向)から1(横方向)に変えているだけです。

import numpy as np

aaa=np.array([[1,2,3],
              [4,5,6],
              [7,8,9]])

bbb=np.array([[10,20,30],
              [40,50,60],
              [70,80,90]])

ccc=np.concatenate([bbb,aaa],1)
print(ccc)

 

こいつを実行すると以下が出力されました。

numpy-concatenateを使って2つの配列を横方向に結合した結果

問題なく横方向に結合できていますね。

 

スポンサーリンク

〇3つの配列を結合した例

最後に3つの配列を結合してみましょう。

先ほどと同じように、横方向に結合してみます。

※基本的に3つより多くてもやることは同じで、concatenate内の引数にどんどん配列を追加していけばOKです。

import numpy as np

aaa=np.array([[1,2,3],
              [4,5,6],
              [7,8,9]])

bbb=np.array([[10,20,30],
              [40,50,60],
              [70,80,90]])

ccc=np.concatenate([aaa,bbb,aaa],1)
print(ccc)

 

こいつを実行すると以下の結果が得られました。

numpy-concatenateを使って3つの配列を横方向に結合した結果

問題なくできてますね。

 

スポンサーリンク

おわりに

というわけで今回はnumpyのconcatenateを使って、複数の配列を結合する方法をご紹介しました。

画像を合成する際などにぜひご活用ください。

※以下の記事では、今回のスキルを使った画像の結合方法をご紹介しています。

興味があればこちらもあわせてご覧ください。

【python-openCV】複数の画像を仕切りを付けて結合する方法!

 

このように、私のブログでは様々なスキルを紹介しています。

過去記事一覧

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村 IT技術ブログへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました