バラバラのデータを一つに!numpyの配列結合(concatenateとvstack)をマスターしよう
こんにちは。ゆうせいです。
前回は、一つの配列の形を自由自在に変える reshape についてお話ししました。形を整える方法が分かったら、次は「別々に用意した複数のデータを、一つの大きな塊にまとめる」という技術に挑戦しましょう。
それが、今回解説する 配列の結合 です。
皆さんは、レゴブロックで遊んだことはありますか。一つひとつのパーツは小さくても、それらをカチッと繋ぎ合わせれば、大きな飛行機や城を作ることができますよね。プログラミングでも、別々の場所から集めてきたデータを合体させて、分析用の大きな表を作る作業がよく発生するのです。
縦に積むか、横に並べるか
配列をくっつけるとき、まず考えなければならないのが「どの方向に繋げるか」です。主に二つの方向があります。
- 縦方向(行を増やす):新しいデータ(行)を下に追加していくイメージ。
- 横方向(列を増やす):新しい項目(列)を右側に追加していくイメージ。
この「方向」を意識することが、結合をマスターする一番の近道です。
直感的に縦に積む vstack
まずは vstack(ブイスタック) です。これは vertical stack(垂直に積み上げる)の略です。
名前の通り、配列を縦に「重ねる」のが得意な関数です。例えば、 組の出席簿と
組の出席簿を縦に繋げて、学年全体のリストを作るような場面で使います。
vstack のルール
重ねるためには、 「横幅(列の数)」が一致していること が絶対条件です。横幅が違うものを無理に積もうとすると、形が崩れてしまうのでエラーになります。
自由度の高い concatenate
次に紹介するのが concatenate(コンカティネート) です。名前が少し長いですが、プログラミングの世界では「連結する」という意味でよく使われる言葉です。
この関数の特徴は、 axis(アクシス) という引数を使って、縦にも横にも結合できる点にあります。
- $axis \ latex =$ 0 : 縦方向に繋ぐ( vstack と同じ)
- $axis \ latex =$ 1 : 横方向に繋ぐ( hstack と同じ)
高校生の皆さんに例えるなら、 axis は「接着剤を塗る面」を指定するスイッチのようなものだと考えてください。
結合のメリットと注意点
メリット
- バラバラの情報を統合できる:例えば「気温のデータ」と「湿度のデータ」を横に繋げて、一つの分析用データセットを簡単に作れます。
- 大量の処理に強い:何百個という小さな配列を、ループを使って一つにまとめることも可能です。
デメリット(注意点)
結合は、実はコンピュータにとって「新しい大きな空き地を探して、そこに全てのデータを引っ越しさせる」という大変な作業です。そのため、巨大な配列を何度も何度も結合すると、動作が重くなってしまうことがあります。
結合関数の使い分けまとめ
| 関数名 | 得意な方向 | 使いどころ |
| vstack | 縦(垂直) | データの件数(行)を増やしたいとき |
| hstack | 横(水平) | データの項目(列)を増やしたいとき |
| concatenate | どちらも可 | axis を切り替えて、柔軟に繋ぎたいとき |
実際にデータを合体させてみよう!
それでは、二つの配列を作って、縦と横に繋ぎ変えてみましょう。
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])縦に積む
v_result = np.vstack((a, b))
print("縦に結合:\n", v_result)横に並べる
h_result = np.concatenate((a, b), axis=1)
print("横に結合:\n", h_result)※関数に渡すときは、 (a, b) のようにカッコを二重にして、一つのまとまり(タプル)として渡すのがルールです。ここ、よく忘れてエラーになるポイントなので気を付けてくださいね!
巨大なデータセットを構築するための指針
配列の結合を覚えたことで、皆さんは「小さなデータから大きな構造を作る」建築家のような力を手に入れました!
これからの学習の指針です。
- 3つの配列を一度に結合できるか試してみる(実は何個でもいけます!)。
- 配列を逆に切り分ける
np.split()についても調べて、結合の逆操作を学んでみる。 - 表の「見出し」と「データ部分」を結合して、きれいなデータセットを作る練習をしてみる。
バラバラだったパズルが一つに組み上がる瞬間は、プログラミングをしていて最高に気持ちいい瞬間の一つです。
セイ・コンサルティング・グループでは新人エンジニア研修のアシスタント講師を募集しています。
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。
最新の投稿
新人エンジニア研修講師2026年2月26日機械学習の文字式・記号お約束のまとめ
新人エンジニア研修講師2026年2月26日逆三角形の魔法?機械学習で絶対つまずくナブラとデルタの超簡単な覚え方
新人エンジニア研修講師2026年2月26日プログラミング初心者が最初に知るべきYAMLの基本
新人エンジニア研修講師2026年2月26日バラバラのデータを一つに!numpyの配列結合(concatenateとvstack)をマスターしよう
