NumPy

【NumPy】配列(ndarray)の結合方法 concatenate、vstack、hstack

【numpy】配列(ndarray)の結合方法 _ concatenate, vstack, hstack _
naoki-hn

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]]

上記で紹介した例では、2 つの配列の結合を紹介していますが、複数配列でも順に列挙することで問題なく結合ができます。

まとめ

NumPyの配列(ndarray)の結合方法について解説しました。

配列(ndarray)を結合するには、concatenate 関数、vstack 関数、hstack 関数を使用します。この記事では、それぞれの使い方を紹介しました。

複数の配列の結合は、データ分析の前処理などでよく行う操作であるため、うまく使いこなしてもらえたらと思います。

  • concatenate の公式ドキュメントはこちらを参照してください。
  • vstack の公式ドキュメントはこちらを参照してください。
  • hstack の公式ドキュメントはこちらを参照してください。
ソースコード

上記で紹介しているソースコードについては GitHub にて公開しています。参考にしていただければと思います。

あわせて読みたい
【Python Tech】プログラミングガイド
【Python Tech】プログラミングガイド
ABOUT ME
ホッシー
ホッシー
システムエンジニア
はじめまして。当サイトをご覧いただきありがとうございます。 私は製造業のメーカーで、DX推進や業務システムの設計・開発・導入を担当しているシステムエンジニアです。これまでに転職も経験しており、以前は大手電機メーカーでシステム開発に携わっていました。

プログラミング言語はこれまでC、C++、JAVA等を扱ってきましたが、最近では特に機械学習等の分析でも注目されているPythonについてとても興味をもって取り組んでいます。これまでの経験をもとに、Pythonに興味を持つ方のお役に立てるような情報を発信していきたいと思います。どうぞよろしくお願いいたします。

※キャラクターデザイン:ゼイルン様
記事URLをコピーしました