8,681 views
この記事は最終更新から 1820日 が経過しています。
numpy配列に対して部分的に平均値や標準偏差を求めたい。
以下のように 10行8列の整数配列 aを作る。
>>> import numpy as np >>> a = (np.random.rand(10,8) * 10).astype(np.int32) >>> a array([[2, 7, 7, 9, 9, 4, 4, 3], [8, 1, 4, 5, 2, 2, 0, 9], [5, 6, 3, 4, 3, 4, 2, 5], [0, 0, 7, 9, 3, 8, 6, 5], [0, 0, 8, 0, 5, 8, 9, 3], [9, 9, 3, 3, 3, 8, 9, 3], [4, 3, 9, 7, 9, 2, 6, 2], [2, 9, 9, 5, 0, 7, 6, 0], [8, 2, 2, 1, 5, 1, 7, 8], [7, 0, 4, 6, 8, 9, 0, 5]], dtype=int32)
a[2][3]を起点に 3行2列の範囲に対して統計計算したい。
見辛いので取り出してみる。切り出したものを別変数に代入した方が扱いやすいか…
>>> a[2:2+3, 3:3+2] array([[4, 3], [9, 3], [0, 5]], dtype=int32)
sumで総和を求める。
>>> a[2:2+3, 3:3+2].sum()
24
meanで平均値を求める。
>>> a[2:2+3, 3:3+2].mean()
4.0
stdで標準偏差を求める。
>>> a[2:2+3, 3:3+2].std()
2.70801280154532
maxで最大値を求める。
>>> a[2:2+3, 3:3+2].max()
9
minで最小値を求める。
>>> a[2:2+3, 3:3+2].min()
0