この記事のポイント
Pythonで手軽に統計処理を行うためのstatisticsモジュールについて、初心者にもわかりやすく解説していきます。
- Python標準ライブラリに含まれる統計処理機能の基本的な使用方法
- 平均値や中央値などの基本統計量を簡単に計算する方法
- データ分析における実践的な活用パターンとコード例
これらのポイントを理解することで、データの特徴を数値として整理でき、分析の精度を高めることができます。
statisticsとは?
Pythonのstatisticsモジュールは、Pythonの標準ライブラリに含まれる統計処理専用のツールです。平均値、中央値、最頻値、標準偏差など、基本的な統計量を簡単に計算できます。
このモジュールは追加のライブラリを必要とせず、Python環境があればすぐに利用可能です。関数名が直感的に分かりやすく設計されているため、専門的な統計知識がなくても基本的な分析を実行でき、教育現場や初歩的な解析に幅広く活用されています。
【関連】
Pythonをもっと詳しく学ぶならpaizaラーニング
基本構文
Pythonのstatisticsモジュールの基本的な使い方はシンプルです。まずモジュールをインポートし、リストや配列などの数値データを用意すれば、直接、統計関数を適用できます。平均値を算出する mean、中央値を求める median、最頻値を取得する mode が代表的な機能です。以下に基本的なコード例を示します。
数値リストの平均値を表示
import statistics
DATA = [10, 20, 30, 40, 50]
def calculate_average(values):
return statistics.mean(values)
def main():
average = calculate_average(DATA)
print(f"平均値: {average}")
if __name__ == "__main__":
main()
出力結果
平均値: 30
Pythonのstatisticsという標準ライブラリを使えば、難しい計算式を自分で書く必要がありません。下記のコード例のように、中央値や最頻値も、用意された機能を使って簡単に処理できます。
数値リストの中央値と最頻値を表示
import statistics
SCORES = [85, 92, 78, 96, 88, 92, 84]
def main():
median_score = statistics.median(SCORES)
mode_score = statistics.mode(SCORES)
print(f"中央値: {median_score}")
print(f"最頻値: {mode_score}")
if __name__ == "__main__":
main()
出力結果
中央値: 88
最頻値: 92
実用例
ここからは、Pythonのstatisticsモジュールを実際の場面で活用するための具体的なコード例を紹介していきます。データ分析でよく使用される統計処理を中心に、動物の体重や身長などの具体的なデータを使用し、わかりやすい内容にしました。
各例では、計算の目的と結果の意味を明確に解説した、実際のプロジェクトや学習において即戦力となる内容です。さらに、データの準備から結果の出力までを一連の流れとして示し、統計処理の基本的な考え方を理解できる構成にしています。
ペットの体重データから平均体重を算出
動物病院で記録されたイヌの体重データを用いて、平均体重を計算する例です。複数の動物を管理する際、平均体重は健康状態を把握するための基礎データとして役立ちます。
イヌの体重データから平均体重と件数を表示
import statistics
DOG_WEIGHTS = [12.5, 18.3, 25.7, 8.9, 32.1, 15.6, 22.4]
def calculate_average(values):
return statistics.mean(values)
def main():
average_weight = calculate_average(DOG_WEIGHTS)
print(f"イヌの平均体重: {average_weight:.2f}kg")
print(f"データ数: {len(DOG_WEIGHTS)}匹")
if __name__ == "__main__":
main()
出力結果
イヌの平均体重: 19.36kg
データ数: 7匹
動物園のゾウの身長から中央値を求める
動物園で飼育されているゾウの身長データから中央値を算出するサンプルです。中央値は外れ値の影響を受けにくいため、データ全体の代表値として、実務でもよく用いられます。
ゾウの身長データから中央値と並び替え結果を表示
import statistics
ELEPHANT_HEIGHTS = [280, 295, 310, 275, 320, 285, 305]
def main():
median_height = statistics.median(ELEPHANT_HEIGHTS)
sorted_data = sorted(ELEPHANT_HEIGHTS)
print(f"ゾウの身長の中央値: {median_height}cm")
print(f"並び替えたデータ: {sorted_data}")
if __name__ == "__main__":
main()
出力結果
ゾウの身長の中央値: 295cm
並び替えたデータ: [275, 280, 285, 295, 305, 310, 320]
ネコの年齢データから最頻値を特定
ペットショップで販売されているネコの年齢データを用いて、最も多く出現する年齢を特定します。最頻値は、データの中で最も頻繁に現れる値を示すことから、販売傾向を把握する際などに有効です。
ネコの年齢データから最頻値とその匹数を表示
import statistics
CAT_AGES = [2, 3, 2, 4, 3, 2, 5, 3, 2, 4]
def main():
mode_age = statistics.mode(CAT_AGES)
age_count = CAT_AGES.count(mode_age)
print(f"ネコの最頻年齢: {mode_age}歳")
print(f"この年齢のネコの数: {age_count}匹")
if __name__ == "__main__":
main()
出力結果
ネコの最頻年齢: 2歳
この年齢のネコの数: 4匹
ウサギの体重データから標準偏差を計算
実験用ウサギの体重測定結果から標準偏差を求めるサンプルです。標準偏差はデータの散らばり具合を表す統計量で、値が小さい場合は平均値付近にデータが集中していることを示します。
ウサギの体重データから平均体重と標準偏差を表示
import statistics
RABBIT_WEIGHTS = [1.8, 2.1, 1.9, 2.3, 2.0, 1.7, 2.2]
def main():
mean_weight = statistics.mean(RABBIT_WEIGHTS)
std_dev = statistics.stdev(RABBIT_WEIGHTS)
print(f"ウサギの平均体重: {mean_weight:.2f}kg")
print(f"標準偏差: {std_dev:.3f}kg")
if __name__ == "__main__":
main()
出力結果
ウサギの平均体重: 2.00kg
標準偏差: 0.216kg
鳥類の飛行速度から分散を算出
さまざまな鳥類の飛行速度データを用いて分散を計算します。分散は標準偏差の二乗値であり、データの散らばり具合を数値として表す指標です。値が大きいほど速度のばらつきが大きいことを示します。
鳥類の飛行速度データから平均速度と分散を表示
import statistics
BIRD_SPEEDS = [45, 52, 38, 61, 49, 55, 42, 58]
def main():
mean_speed = statistics.mean(BIRD_SPEEDS)
variance = statistics.variance(BIRD_SPEEDS)
print(f"鳥類の平均飛行速度: {mean_speed}km/h")
print(f"分散: {variance:.2f}")
if __name__ == "__main__":
main()
出力結果
鳥類の平均飛行速度: 50.0km/h
分散: 64
水族館のサメの体長データ分析
水族館で飼育されているサメの体長から複数の統計量を一度に計算するサンプルです。平均値・中央値・最大値といった基本統計量をまとめて算出します。
サメの体長データから平均・中央値・最大値を表示
import statistics
SHARK_LENGTHS = [180, 220, 195, 240, 225, 185, 225, 210]
def main():
mean_len = statistics.mean(SHARK_LENGTHS)
median_len = statistics.median(SHARK_LENGTHS)
max_len = max(SHARK_LENGTHS)
print(f"サメの平均体長: {mean_len}cm")
print(f"サメの体長中央値: {median_len}cm")
print(f"最大体長: {max_len}cm")
if __name__ == "__main__":
main()
出力結果
サメの平均体長: 210cm
サメの体長中央値: 215.0cm
最大体長: 240cm
牧場のウシの乳量データから調和平均を計算
酪農場のウシの日別乳量データから調和平均を求める例です。比率や速度などのデータを扱う際に有効で、この例のように、日ごとの生産量を分析する際にも活用できます。
ウシの乳量データから調和平均と算術平均を表示
import statistics
COW_MILK_PRODUCTION = [25.5, 28.2, 22.8, 30.1, 26.7, 24.9, 29.3]
def main():
harmonic_mean = statistics.harmonic_mean(COW_MILK_PRODUCTION)
arithmetic_mean = statistics.mean(COW_MILK_PRODUCTION)
print(f"ウシの乳量調和平均: {harmonic_mean:.2f}L")
print(f"ウシの乳量算術平均: {arithmetic_mean:.2f}L")
if __name__ == "__main__":
main()
出力結果
ウシの乳量調和平均: 26.57L
ウシの乳量算術平均: 26.79L
まとめ
Pythonのstatisticsモジュールは、データ分析における基本的な統計処理を手軽に実行できる便利なツールです。標準ライブラリとして提供されているため、追加のインストール作業が不要で、Pythonを学習し始めたばかりの方でもすぐに活用できます。
このモジュールを使えば、複雑な数式を暗記する必要はありません。直感的な関数名で統計量を計算できるため、データの特徴をすばやく把握できます。
statisticsの活躍する場面
- 教育現場での統計学習における基本的な計算練習
- 業務データの簡単な集計や傾向分析での活用
- 研究や実験データの予備的な統計処理での使用
重要なポイント
- 大量データ処理では他のライブラリとの使い分けが必要
- 高度な統計解析にはNumpyやPandasとの併用が効果的
- データの型や欠損値の処理については事前確認が大切
Python標準のstatisticsモジュール は、データ分析の入門に役立つツールです。平均値や中央値といった基本統計量を理解することで分析の基盤を整えられ、その上で学習を進めれば高度な手法もスムーズに習得できます。
レベルを更に上げたい方はpaizaプログラミングスキルチェックへ