統計計算とユーティリティ関数

NumPy入門⑥ 統計計算とユーティリティ関数

基本的な統計計算

NumPyは配列に対して、統計量を簡単に計算できます。

import numpy as np

data = np.array([1, 2, 3, 4, 5, 6])

print(np.sum(data))   # 合計: 21
print(np.mean(data))  # 平均: 3.5
print(np.median(data))# 中央値: 3.5
print(np.std(data))   # 標準偏差: 1.7078...
print(np.var(data))   # 分散: 2.9166...

最大値・最小値とその位置

最大値や最小値の位置(インデックス)も取得可能です。

print(np.max(data))      # 最大値: 6
print(np.min(data))      # 最小値: 1
print(np.argmax(data))   # 最大値の位置: 5
print(np.argmin(data))   # 最小値の位置: 0

累積計算

累積和や累積積を求められます。

print(np.cumsum(data))  # 累積和: [ 1  3  6 10 15 21]
print(np.cumprod(data)) # 累積積: [   1    2    6   24  120  720]

ソートとユニーク

データ処理でよく使うソートや重複排除も簡単です。

arr = np.array([3, 1, 2, 3, 5, 2, 1])

print(np.sort(arr))       # [1 1 2 2 3 3 5]
print(np.unique(arr))     # [1 2 3 5]

条件を満たす要素の抽出

条件に一致する要素を効率的に取り出せます。

print(data[data > 3])  # [4 5 6]

乱数ユーティリティ

統計シミュレーションなどで役立つ乱数機能も豊富です。

# 0〜1の乱数を10個
print(np.random.rand(10))

# 標準正規分布に従う乱数(平均0, 分散1)
print(np.random.randn(5))

# 任意の整数乱数(0〜9)
print(np.random.randint(0, 10, 5))

まとめ

  • sum, mean, median, std, var で代表的な統計量を計算できる
  • 最大値・最小値やそのインデックスを取得可能
  • cumsum, cumprod で累積演算が可能
  • sort, unique で並べ替えや重複除去ができる
  • np.random 系関数で乱数生成が可能