レッスン1 / 2問目

『合計と平均』

このチャプターから統計関数について学習していきます。NumPyには様々な統計に関する関数が用意されており、このチャプターでは以下の関数を順番に学習していきます。

  1. 合計
  2. 平均
  3. 標準偏差
  4. 分散

これらの統計関数は、機械学習のレッスンでも必要となりますので確実にマスターしましょう。

では本レッスンでは合計と平均について学習します。以下が合計、平均を求める関数です。

関数説明
np.sum合計
np.mean平均

ではこれらnp.sumとnp.meanについて順番に見ていきましょう。

sum

まずはnp.sumです。pythonの組み込み関数にもsum()がありますが、使い方は同じです。以下のようにnp.sum()の引数に配列を渡すと配列要素の合計を取得することができます。

  1. arr1 = np.array([5, 10, 15, 20])
  2. total = np.sum(arr1)
  3. print(total)
50    # 合計

配列要素の合計を取得することができました。

また、ndarrayではメソッドとしてのsumも用意されており、以下のようにarr.sum()と記述することで上記np.sum()と同様に合計を取得することができます。

  1. arr1 = np.array([5, 10, 15, 20])
  2. total = arr1.sum()
  3. print(total)
50    # np.sum()と同じ結果が得られる

このようにndarrayにはsumメソッドが用意されていることも覚えておきましょう。

mean

では次はnp.meanについて見ていきましょう。sumの場合と同様にnp.mean()の引数に配列を渡すことでその配列要素の平均を取得することができます。以下の例ではarr1の平均を取得しています。

  1. arr1 = np.array([5, 10, 15, 20])
  2. total = np.mean(arr1)
  3. print(total)
12.5    # 配列の平均を取得

リストで平均を取得する場合はsumで合計を取得し、要素数で除算する必要がありましたが、NumPyであれば上記のように簡単に平均を取得することができます。

また、meanもndarrayメソッドとしてあらかじめ用意されているため以下のようにarr.mean()と記述することでnp.meanと同様に平均を取得することができます。

  1. arr1 = np.array([5, 10, 15, 20])
  2. total = arr1.mean()
  3. print(total)
12.5    # 平均を取得

sumと同様にmeanもメソッドが用意されていますのでこちらも覚えておきましょう。

軸の指定

これまでは一次元の配列(ベクトル)に対して関数を使用する例を見てきましたが、ここでは二次元配列に対して関数を使用する例を見ていきましょう。以下の例では二次元配列arrに対してnp.sumを使用し、合計を取得しています。

  1. arr1 = np.array([[5, 10, 15, 20],
  2.        [8, 16, 24, 32]])
  3. total = np.sum(arr1)
  4. print(total)
130    # 全ての配列の合計を取得

二次元の配列でも一次元の場合と同様に合計を取得することができました。

ではここからが本題です。
np.sum、np.meanでは多次元配列において軸を指定することより計算の方向を変えることができます。以下のようにnp.sum()の第二引数にを指定します。例えば、以下の例のように第二引数に0を指定すると列方向の和を取得することができます。

  1. arr1 = np.array([[5, 10, 15, 20],
  2.        [8, 16, 24, 32]])
  3. total = np.sum(arr1, 0)
  4. print(total)
[18 36 54 72]    # 列方向の和を取得

次は軸に1を指定します。すると行方向の和を取得することができます。

  1. arr1 = np.array([[5, 10, 15, 20],
  2.        [8, 16, 24, 32]])
  3. total = np.sum(arr1, 1)
  4. print(total)
[50 80]    # 行方向の和を取得

軸の指定に関して少しややこしく感じるかもしれませんが、以下の図のように0が列方向1が行方向となるということを覚えておきましょう。

numpyの軸指定の図
numpyの軸指定の図

まとめ

このレッスンではNumPyの関数とメソッドを用いて合計と平均を取得する方法を学習しました。以下にレッスンの内容をまとめます。

  • np.sum()、np.mean()でそれぞれ合計と平均を取得することができる。
  • ndarrayではsum, meanともにメソッドが用意されている。
  • 軸を指定することで列方向、行方向の計算を行うことができる

ではこのレッスンは以上となります。演習課題にチャレンジしましょう。

Lesson1

配列arrの平均を出力してください。

Lesson2

軸を指定し配列arrを行方向に足し合わせた以下の値を出力してください。


[50 60]

Last updated:2019/11/3

13.75
[50 60]
  1. import numpy as np

  2. arr = np.array([[5, 10, 15, 20],
  3. [6, 12, 18, 24]])

  4. # 1 配列arrの平均を出力してください。

  5. ave = np.mean(arr)
  6. print(ave)

  7. # 2 arrを行方向に足し合わせた値を出力してください。

  8. total = np.sum(arr, 1)
  9. print(total)
main.py
設定
g
n
i
d
a
o
L