NumPy配列の集計処理(合計/平均とか) 2015/06/06
配列の要素の合計や平均などの集計処理をする関数を紹介する。配列をスカラーに、または2次元配列を1次元にするので、次元削減ともいう。
平均を計算する mean
での例
ndarr1 = np.array([1., 2., 3., 4., 5., 6., 7., 8., 9.])
print(ndarr1)
# 出力結果
# [ 1. 2. 3. 4. 5. 6. 7. 8. 9.]
print(ndarr1.mean())
# 出力結果
# 5.0
メソッドの形式ではなくて関数の形式でもよい。
ndarr1 = np.array([1., 2., 3., 4., 5., 6., 7., 8., 9.])
print(np.mean(ndarr1))
# 出力結果
# 5.0
多次元配列では次元をまたいですべての要素の平均を計算する。
3次元配列での例
ndarr1 = np.array([[[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]], [[101., 102., 103.], [104., 105., 106.], [107., 108., 109.]]])
print(ndarr1)
# 出力結果
# [[[ 1. 2. 3.]
# [ 4. 5. 6.]
# [ 7. 8. 9.]]
#
# [[ 101. 102. 103.]
# [ 104. 105. 106.]
# [ 107. 108. 109.]]]
# デフォルトでは次元にかかわらずすべての要素の平均を計算する
print(ndarr1.mean())
# 出力結果
# 55.0
axis
という名前付きのオプション引数
2015/06/06
axis
という引数は集計する軸を指定できる。
# axis=(0, 1, 2) はすべての軸で平均をとるので、axisを省略するのと同じ
print(ndarr1.mean(axis = (0, 1, 2)))
# 出力結果
# 55.0
# axis=0 は一番外側の軸で平均をとって、2つ目と3つ目の軸だけが残る2次元配列になる
print(ndarr1.mean(axis = 0))
# 出力結果
# [[ 51. 52. 53.]
# [ 54. 55. 56.]
# [ 57. 58. 59.]]
# axis=1 は2つ目の軸で平均をとって、1つ目と3つ目の軸だけが残る2次元配列になる
print(ndarr1.mean(axis = 1))
# 出力結果
# [[ 4. 5. 6.]
# [ 104. 105. 106.]]
# axis=2 は一番内側の軸で平均をとって、1つ目と2つ目の軸だけが残る2次元配列になる
print(ndarr1.mean(axis = 2))
# 出力結果
# [[ 2. 5. 8.]
# [ 102. 105. 108.]]
# axis=(0, 1) は1つ目と2つ目の軸で平均をとって、3つ目の軸だけが残る1次元配列になる
print(ndarr1.mean(axis = (0, 1)))
# 出力結果
# [ 54. 55. 56.]
print(ndarr1.mean(axis = (0, 2)))
# 出力結果
# [ 52. 55. 58.]
print(ndarr1.mean(axis = (1, 2)))
# 出力結果
# [ 5. 105.]
1次元配列では axis=0
しかありえないので、意味がない。
print(ndarr1.mean(axis = 0))
# 出力結果
# 5.0
print(np.mean(ndarr1, axis = 0))
# 出力結果
# 5.0
関数の一覧 2015/06/06
これらはだいたい似たような使い方ができる。
sum
- 合計
numpy.sum
| NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.sum.html mean
- 算術平均
numpy.mean
| NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.mean.html median
- 最頻値
numpy.median
| NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.median.html std
- 標準偏差
numpy.std
| NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.std.html var
- 分散
numpy.var
| NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.var.html max
- 最大値 -> 最大値・最小値に関する関数
min
- 最小値 -> 最大値・最小値に関する関数
argmax
- 最大値の要素のインデックス -> 最大値・最小値に関する関数
argmin
- 最小値の要素のインデックス -> 最大値・最小値に関する関数