【こつこつPython】Pythonで配列を任意の方向に結合する方法|numpy.block

blockサムネイル
毎日Python/こつこつPython

Pythonで配列を任意の方向に結合する方法です。
使用するのはPythonのnumpyライブラリのblock関数です。

import numpy as np

このような2次元配列を使用します。

a = np.array([[1, 2], [3, 4]])
a

まず、block関数を使用して、配列aどうしを結合してみましょう。
引数に結合したい配列をリストで指定します。
最初に、配列aを横に並べたリストを指定してみましょう。
実行します。

np.block([a, a])

配列aどうしを横方向に結合できました。

次は配列aを縦に並べた2次元のリストを指定してみましょう。
実行します。

np.block([[a], [a]])

配列aどうしを縦方向に結合できました。

更に、配列aを3次元方向に並べた、3次元のリストを指定してみましょう。
実行します。

np.block([[[a]], [[a]]])

配列aどうしを3次元方向に結合できました。
このように、指定するリストを入れ子にすることで、直感的に結合する方向を指定できます。

最後に、一度に複数の方向に結合してみましょう。
配列aを縦と横に2つずつ並べたリストを指定します。
実行します。

np.block([[a, a], [a, a]])

配列aを縦と横の2つの方向に同時に結合できました。
配列を結合する関数はいろいろありますが、block関数を使用すると、一度に複数の配列を任意の方向に結合することができます。

関連メソッド

【毎日Python】Pythonで配列を横方向に結合する方法|numpy.hstack

【毎日Python】Pythonで配列を縦方向に結合する方法|numpy.vstack

【こつこつPython】Pythonで配列を新たな次元で結合する方法|numpy.stack