Pythonのstatisticsモジュールで使える数理統計関数の使い方
Pythonのstatisticsモジュールとは
Python標準ライブラリのstatisticsモジュールには、Fraction型やDecimal型を含むさまざまな数値データ型を使って統計量を計算するための関数が用意されています。
本記事で紹介する関数を使用するには、あらかじめ次のインポート文を実行しておきましょう。
>>> from statistics import *
代表値(中央傾向)を求める関数
以下の関数は、サンプルデータの代表値(中央傾向)を計算します。
mean() – 算術平均
mean()関数は、シーケンスやイテレータ形式のデータに対して算術平均(相加平均)を計算します。
>>> from statistics import mean >>> numbers = [12,34,21,7,56] >>> mean(numbers) 26
サンプルデータには、DecimalオブジェクトやFractionオブジェクトを含めることも可能です。
>>> from decimal import Decimal
>>> numbers = [12,34,21,Decimal('7'),56]
>>> mean(numbers)
Decimal('26')
>>> from fractions import Fraction
>>> numbers = [12,20.55,Fraction(4,5),21,56]
>>> mean(numbers)
22.07
harmonic_mean() – 調和平均
harmonic_mean()関数は調和平均を計算します。調和平均は、サンプルデータの各要素の逆数の算術平均を求め、さらにその平均の逆数を取ることで得られます。
たとえば Sample = [1,2,3,4,5] の場合、手順は次のようになります。
- 逆数の一覧 = [1/1, 1/2, 1/3, 1/4, 1/5] → 合計 = 2.28333333333
- 平均 = 2.28333333333 ÷ 5 = 0.45666666666666667
- 調和平均 = 1 ÷ 0.45666666666666667 = 2.18978102189781
>>> harmonic_mean([1,2,3,4,5]) 2.18978102189781
median() – 中央値
median()関数は、サンプルデータの中央値を返します。データは自動的に昇順へ並べ替えられたうえで中央値が求められます。要素数が奇数の場合は中央の値がそのまま中央値となり、偶数の場合は中央に近い2つの値の平均が中央値になります。
>>> median([2,5,4,8,6]) 5 >>> median([11,33,66,55,88,22]) 44.0
mode() – 最頻値
mode()関数は、サンプルの中で最も多く出現する値(最頻値)を返します。数値データだけでなく、文字列などの非数値データにも適用できるのが特徴です。
>>> mode((4,7,8,4,9,7,12,4,8)) 4 >>> mode(['cc','aa','dd','cc','ff','cc']) 'cc'
散布度(ばらつき)を求める関数
続く関数は、サンプル内の各要素が中心値からどれだけ散らばっているかを表す「散布度」に関するものです。
variance() – 分散
variance()関数は、サンプルデータのばらつき具合(変動・分散)を表します。分散が大きいほどデータは広く散らばり、小さいほどデータは密集していることを意味します。
分散を求める手順は以下の通りです。
- サンプル内の全要素の算術平均を求める。
- 平均と各要素の差を2乗し、それらの平方和を計算する。
- サンプルサイズを n としたとき、平方和を n − 1 で割ると分散が得られる。
これを数式で表すと次のようになります。
s² = Σ(xᵢ − x̄)² / (n − 1)
幸いなことに、variance()関数を使えばこの面倒な計算をすべて自動的に処理してくれます。
>>> num = [4, 9, 2, 11, 5, 22, 90, 32, 56, 70] >>> variance(num) 981.2111111111111
stdev() – 標準偏差
stdev()関数は、サンプルデータの標準偏差を返します。標準偏差は分散の平方根に相当し、データのばらつきを元のデータと同じ単位で把握できる便利な指標です。
>>> num = [4, 9, 2, 11, 5, 22, 90, 32, 56, 70] >>> stdev(num) 31.324289474960338
まとめ
Pythonのstatisticsモジュールを活用すれば、平均・中央値・最頻値といった代表値から、分散・標準偏差などの散布度まで、統計処理の基本操作をわずか数行のコードで実現できます。データ分析の第一歩として、ぜひこれらの関数を使いこなしてみてください。
-
Pythonの演算子関数とは?operatorモジュールの基本と使い方
Pythonには、算術演算・論理演算・比較演算・ビット演算といった数学的な操作を行うための標準ライブラリ関数が用意されています。これらの関数はすべてoperatorモジュールにまとめられています。 operatorモジュールを利用するには、まず標準ライブラリからインポートする必要があります。 import operator この記事では、operatorモジュールが提供する演算子関数のうち、特に使用頻度の高い「算術演算」と「比較(関係)演算」の関数を、サンプルコードと実行結果あわせて解説します。 算術演算の関数 まずは、四則演算など基本的な計算を行う関数から見ていきましょう。主な関数は以下
-
Pythonのdecimalモジュール徹底解説!sqrt・exp・log・compareなど主要関数の使い方
Pythonには、10進浮動小数点数(decimal floating point)を扱うためのdecimalモジュールが標準ライブラリとして用意されています。このモジュールを使うと、正しく丸められた高精度な浮動小数点演算が可能になります。 通常のfloat型は内部で2進数によって数値を表現するため、「0.1 + 0.2」が厳密には0.3にならないといった誤差が発生します。decimalモジュールは、金額計算など厳密な精度が求められる場面で特に役立ちます。 利用するには、まずdecimalモジュールをインポートします。 import decimal 本記事では、decimalモジュールで使える