[NumPy] 3. 配列の形状変換

NumPy

はじめに

NumPyは数値計算を効率的に行うためのPythonライブラリです。その強力な機能の一つに配列の形状変換があります。この記事では、NumPyの配列操作の基本であるreshape関数やravel、flatten、transpose関数などを使った形状変換の方法について解説します。多次元配列の操作は機械学習やデータ処理において非常に重要なスキルとなります。

reshapeを用いた配列形状変換

データの生成

np.linspaceは開始点、終了点、要素数を指定して等間隔の配列を生成します。この関数で作成された配列の形状は(12,)となります。

reshapeによる変換

reshape(行数,列数)を使用すると、配列の形状を指定した行数と列数に変換できます。例えば(3,4)とした場合、3行4列の配列になります。元の要素数と一致する形状にのみ変換可能で、要素数が合わない形状(例えば(3,3)など)に変換しようとするとエラーが発生します。

(2,6)に変換すると以下のようになります。

reshape(4,-1)とした場合

reshapeで行数を指定し、列数を-1とすると、適合する列数が自動的に計算されます。上の例ではreshape(4,-1)とすることで、配列は4行3列に変換されます。

np.newaxis, Noneによる形状変換

配列を列数が1の形状に変換する場合は、np.newaxisやNoneを使用できます。

配列の転置

.Tで配列を転置することが出来ます。

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

まとめ

NumPyの形状変換機能を使うことで、配列のディメンジョンを柔軟に操作できます。reshape関数で多次元配列の変換、ravel・flatten関数で一次元配列への平坦化、transpose関数(.T)で軸の入れ替えが可能です。特に-1を利用した自動サイズ計算や、複数の配列結合といった応用も便利です。これらの操作はデータ処理や機械学習のパイプラインにおいて非常に重要な役割を果たします。

参考

numpy.reshape — NumPy v2.3 Manual

コメント