はじめに
NumPyは科学技術計算のための強力なライブラリであり、多次元配列操作において様々な集約関数を提供しています。本記事では特に一般的に使用される集約関数であるnp.sum、np.stdなどについて、1次元配列と2次元配列における使用方法とその違いについて解説します。集約関数の適切な使用方法を理解することで、効率的なデータ処理が可能になります。
1次元配列の集約
データの生成
np.random.randint(1, 100, size=9)を使用して、1から100までのランダムな整数値を含む9要素の配列を生成します。
集約関数
合計値
np.sum()で配列内の要素の合計値を求めることができます。
最小値
np.min()で配列内の最小値を求めることができます。
最大値
np.max()で配列内の最大値を求めることができます。
平均値
np.mean()で配列内の要素の平均値を求めることができます。
中央値
np.median()で配列内の要素の中央値を求めることができます。要素数が偶数の場合、2つの中央値の平均値が出力されます。
標準偏差
np.std()で配列の標準偏差を求めることができます。
分散
np.var()で配列の分散を求めることができます。
積
np.prod()で配列の全要素をかけ合わせた値を求めることができます。
最大値のインデックス
argmaxで配列の最大値のインデックスを求めることができます。
最小値のインデックス
argminで配列の最小値のインデックスを求めることができます。
配列のメソッドとして表記
np.min(data)ではなく、data.min()のように記述しても同じ結果が得られます。
2次元列の集約
データの生成
np.random.randint(1,100,(3,5))とすることで形状が(3,5)であり、要素として1〜100のランダムな値をもつ配列が得られます。
集約関数
合計値
1次元配列と同様に求めることができます。
axis=0で列方向に集約
axis=0と指定することで列方向に集約することができます。
axis=1で行方向に集約
axis=1と指定することで列方向に集約することができます。
2次元配列における最大値のインデックス
最大値のインデックスを求めるnp.argmax()は、配列を1次元に展開したときのインデックスを返します。
これを2次元配列のインデックスとして取得するには、np.unravel_indexを使用します。
np.unravel_index(np.argmax(data2), data2.shape)のように、第1引数にargmaxの結果を、第2引数に配列の形状を指定すると、2次元配列におけるインデックスが返されます。
まとめ
本記事では、NumPyの集約関数であるnp.sum、np.stdなどの1次元配列と2次元配列における使用法について解説しました。これらの関数は軸(axis)パラメータを使用して特定の次元に沿った集計が可能であり、データ分析において重要な役割を果たします。また、デフォルトでは配列全体に対して集計が行われることや、keepdimsパラメータを使って次元を保持する方法も紹介しました。NumPyの集約関数を適切に使いこなすことで、より効率的かつ正確なデータ分析が実現できます。
参考

コメント