この記事では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)
こいつを実行すると以下の結果が出力されました。
問題なく縦方向に結合されていますね。
ちなみに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)
こいつを実行すると以下が出力されました。
先ほどと結合の順番が逆になっていますね。
〇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)
こいつを実行すると以下が出力されました。
問題なく横方向に結合できていますね。
〇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を使って、複数の配列を結合する方法をご紹介しました。
画像を合成する際などにぜひご活用ください。
※以下の記事では、今回のスキルを使った画像の結合方法をご紹介しています。
興味があればこちらもあわせてご覧ください。
【python-openCV】複数の画像を仕切りを付けて結合する方法!
このように、私のブログでは様々なスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村
それではまた!
Follow @HigashiSalary
コメント