【NumPy】配列(ndarray)の結合方法 concatenate、vstack、hstack
の結合方法-_-concatenate-vstack-hstack-_.jpg)
NumPyの配列(ndarray)の結合方法について解説します。
目次
配列(ndarray)の結合方法
NumPy の配列(ndarray)を結合するには、concatenate 関数、vstack 関数、hstack 関数を使用します。
この記事では、これらの関数の使い方の基本を紹介します。
行方向(垂直方向)の結合
配列を行方向(垂直方向)に結合する場合には、concatenate 関数 または vstack 関数を使用します。
concatenate を使用する場合
concatenate 関数を使用する場合には、以下のように使用します。結合する配列をタプル または リストの形式で順に列挙するだけで簡単に結合ができます。
import numpy as np x = np.arange(9).reshape((3, 3)) y = np.arange(9).reshape((3, 3)) # 2次元配列を行方向に結合する result = np.concatenate((x, y)) print(result)
【実行結果】 [[0 1 2] [3 4 5] [6 7 8] [0 1 2] [3 4 5] [6 7 8]]
vstack を使用する場合
行方向に結合したい場合には、vstack 関数を使うこともできます。v は垂直(vertical)表しています。使い方は、concatenate 関数と同様です。
import numpy as np x = np.arange(9).reshape((3, 3)) y = np.arange(9).reshape((3, 3)) # 2次元配列を行方向に結合する result = np.vstack((x, y)) print(result)
【実行結果】 [[0 1 2] [3 4 5] [6 7 8] [0 1 2] [3 4 5] [6 7 8]]
列方向(水平方向)の結合
配列を列方向(水平方向)に結合する場合には、concatenate 関数 または hstack 関数を使用します。
concatenate を使用する場合
concatenate 関数で列方向の結合をする場合、行方向と同様の使い方ですが違いとして「axis=1」で列方向の軸を指定する点があります。行方向の結合では、axis 引数を指定していませんでしたが、デフォルトで axis=0 が設定されています。
import numpy as np x = np.arange(9).reshape((3, 3)) y = np.arange(9).reshape((3, 3)) # 2次元配列を列方向に結合する result = np.concatenate((x, y), axis=1) print(result)
【実行結果】 [[0 1 2 0 1 2] [3 4 5 3 4 5] [6 7 8 6 7 8]]
hstack を使用する場合
列方向に結合したい場合には、hstack 関数を使うこともできます。h は水平(horizontal)を表しています。
使い方は concatenate 関数と同様ですが、hstack 自体が列方向(水平方向)結合を明示した関数であるため concatenate のような axis 指定はありません。
import numpy as np x = np.arange(9).reshape((3, 3)) y = np.arange(9).reshape((3, 3)) # 2次元配列を列方向に結合する result = np.hstack((x, y)) print(result)
【実行結果】 [[0 1 2 0 1 2] [3 4 5 3 4 5] [6 7 8 6 7 8]]
まとめ
NumPyの配列(ndarray)の結合方法について解説しました。
配列(ndarray)を結合するには、concatenate 関数、vstack 関数、hstack 関数を使用します。この記事では、それぞれの使い方を紹介しました。
複数の配列の結合は、データ分析の前処理などでよく行う操作であるため、うまく使いこなしてもらえたらと思います。
上記で紹介しているソースコードについては GitHub にて公開しています。参考にしていただければと思います。


の属性情報の確認方法-_-dtype-size-shape-ndim-itemsize-nbytes-_.jpg)
をソートする方法-_-sort-argsort-_-1.jpg)
の形状を変更する方法-_-reshape-_.jpg)
の基本.jpg)

の作成方法-_array-zeros-ones-full-arange-random-randint-randn-normal-linspace-eye-empty_.jpg)