[NumPy] 5. np.sum, np.std などの集約関数の1次元、2次元配列における使用法

NumPy

はじめに

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次元配列のインデックスが返ってくる。

参考

Sorting, searching, and counting — NumPy v2.1 Manual
Mathematical functions — NumPy v2.1 Manual
[Python] Numpyで多次元配列のargmaxをとりたい - Qiita
使い方PythonでNumpyを使っている時,多次元配列に対してargmaxやargminを使いたい時があります.例えば,\begin{bmatrix}11 & 22 & 33 \…

コメント