カテゴリ: Python 更新日: 2026/07/15

Pythonで統計分析!平均・中央値・標準偏差の求め方を初心者向けに完全解説

Pythonで統計分析を行う方法(平均・中央値・標準偏差)
Pythonで統計分析を行う方法(平均・中央値・標準偏差)

先生と生徒の会話形式で理解しよう

生徒

「最近よく耳にする『データサイエンス』や『統計分析』に興味があるのですが、パソコン初心者でもPythonを使えば計算ができるようになりますか?」

先生

「もちろんです。Python(パイソン)は数あるプログラミング言語の中でも、データの計算が得意で、初心者にも読みやすい書き方が特徴です。数学が苦手な人でも、専用の道具を使えば一瞬で答えが出せますよ。」

生徒

「平均だけじゃなくて、標準偏差とか難しい言葉も出てきて不安です。具体的にどうやって計算するのか、基礎から教えてほしいです!」

先生

「では、データの全体像を把握するために欠かせない『平均』『中央値』『標準偏差』の3つを中心に、具体的なコードの書き方を一緒に見ていきましょう!」

1. Pythonを使った統計分析とは?

1. Pythonを使った統計分析とは?
1. Pythonを使った統計分析とは?

統計分析(とうけいぶんせき)と聞くと、複雑な数式を思い浮かべて身構えてしまうかもしれません。しかし、現代のデータ分析において、人間が手計算で何時間もかける必要はありません。Python(パイソン)というプログラミング言語を使えば、数千、数万という膨大なデータの中から、一瞬で特徴を導き出すことができます。

Pythonがなぜデータ分析に選ばれているのか。その最大の理由は、「ライブラリ」と呼ばれる便利な拡張セットが充実しているからです。ライブラリとは、特定の目的(今回は計算)のために作られた「道具箱」のようなものです。この道具箱の中には、平均値を出す魔法の杖や、グラフを作る魔法の筆が入っています。

この記事では、データ分析の第一歩として、データの中心地やバラつきを調べるための基本的な手法をマスターしていきます。プログラミング未経験の方でも、まずは「Pythonを使えばこんなに簡単に計算ができるんだ!」と実感してもらうことが大切です。

2. データ分析の必須アイテム「NumPy」と「Pandas」

2. データ分析の必須アイテム「NumPy」と「Pandas」
2. データ分析の必須アイテム「NumPy」と「Pandas」

本格的にPythonで計算を始める前に、絶対に知っておくべき2つのライブラリをご紹介します。

  • NumPy(ナムパイ): 数値計算を高速に行うためのライブラリです。行列計算など、数学的な処理が得意です。
  • Pandas(パンダス): 表形式のデータ(Excelのようなデータ)を扱うためのライブラリです。データの読み込みや加工に最適です。

今回は、この中から最も基本的で扱いやすいライブラリを使い、リスト形式(数値の並び)のデータを分析していきます。Pythonでは、まずこれらを「インポート(呼び出し)」することから作業が始まります。

3. 基本中の基本!「平均値(Mean)」を求める方法

3. 基本中の基本!「平均値(Mean)」を求める方法
3. 基本中の基本!「平均値(Mean)」を求める方法

平均値(へいきんち)とは、すべてのデータの合計をデータの個数で割った値のことです。学校のテストの点数などで最もなじみがある指標ですね。Pythonでは、自分で足し算や割り算を書かなくても、専用の関数を使うだけで求めることができます。

例えば、あるクラスの5人のテスト結果が「70, 80, 60, 90, 75」だったとしましょう。これらをPythonの「リスト」という機能を使って変数に入れ、計算してみます。


import statistics

# テストの点数リスト
scores = [70, 80, 60, 90, 75]

# statisticsライブラリを使って平均を計算
mean_value = statistics.mean(scores)

print("テストの平均点は:", mean_value)

実行結果は以下のようになります。


テストの平均点は: 75

このように、statistics.mean()という命令を使うだけで、一瞬で平均が求められました。

4. 極端な値に強い!「中央値(Median)」の重要性

4. 極端な値に強い!「中央値(Median)」の重要性
4. 極端な値に強い!「中央値(Median)」の重要性

次に紹介するのは中央値(ちゅうおうち)です。これは、データを小さい順に並べたときに、ちょうど真ん中にくる値のことです。

「平均があれば十分じゃないの?」と思うかもしれませんが、実は平均値には「極端な値に引っ張られやすい」という弱点があります。例えば、年収の調査で1人だけ「100億円」稼いでいる人が混ざると、他の全員が300万円でも、平均年収は跳ね上がってしまいます。これでは、一般的な人の感覚とはかけ離れた数字になってしまいますよね。

そんな時、データを順番に並べて真ん中の値を採用する中央値を使えば、より実態に近い数値を把握できるのです。


import statistics

# 極端な値が含まれるデータ(1人だけ1000が入っている)
data = [10, 12, 15, 13, 1000]

# 平均値と中央値を比較してみよう
mean_val = statistics.mean(data)
median_val = statistics.median(data)

print("平均値:", mean_val)
print("中央値:", median_val)

実行結果は以下の通りです。


平均値: 210.0
中央値: 13

平均値は1000に影響されて「210」になっていますが、中央値は「13」となり、大半のデータの傾向をうまく表せていることが分かります。

5. データのバラつきを知る「標準偏差(Standard Deviation)」

5. データのバラつきを知る「標準偏差(Standard Deviation)」
5. データのバラつきを知る「標準偏差(Standard Deviation)」

データ分析で最も重要な概念の一つが標準偏差(ひょうじゅんへんさ)です。これは簡単に言うと、「データが平均値からどのくらいバラついているか」を表す指標です。

例えば、「全員が70点」のクラスと、「0点と100点が半分ずつ」のクラスがあったとします。どちらも平均点は50点(または70点付近)になりますが、クラスの状態は全く違いますよね。

  • 標準偏差が小さい: データが平均の周りにギュッと集まっている。
  • 標準偏差が大きい: データがバラバラで、差が激しい。

Pythonで標準偏差を求めるには、同じくライブラリの関数を使用します。


import statistics

# クラスAとクラスBの点数比較
class_a = [65, 70, 75, 68, 72] # みんな平均に近い
class_b = [10, 50, 90, 20, 100] # 点数がバラバラ

# 標準偏差(stdev)を計算
stdev_a = statistics.stdev(class_a)
stdev_b = statistics.stdev(class_b)

print("クラスAのバラつき:", stdev_a)
print("クラスBのバラつき:", stdev_b)

実行結果を見てみましょう。


クラスAのバラつき: 3.847076812334269
クラスBのバラつき: 40.37325847637375

クラスBの方が圧倒的に数値が大きいですね。これにより、数字だけで「クラスBは個人差が非常に激しい」という背景が読み取れるようになります。

6. 便利な「NumPy」を使った一括計算テクニック

6. 便利な「NumPy」を使った一括計算テクニック
6. 便利な「NumPy」を使った一括計算テクニック

これまでは標準ライブラリを使用してきましたが、実際のプロの現場ではNumPy(ナムパイ)というライブラリがよく使われます。NumPyを使うと、より大量のデータを高速に、そして短いコードで処理できるようになります。

まず、ライブラリを「np」という短い名前で使えるように設定するのが一般的です。これを「エイリアス(別名)」と呼びます。パソコンを触ったことがない方でも、この書き方は決まり文句として覚えておくと便利ですよ。


import numpy as np

# サンプルデータを作成
prices = [1200, 1500, 1100, 1800, 1300, 2000]

# NumPyの関数で一気に計算
avg_p = np.mean(prices)      # 平均
med_p = np.median(prices)    # 中央値
std_p = np.std(prices)       # 標準偏差

print(f"平均価格: {avg_p}円")
print(f"中央値: {med_p}円")
print(f"標準偏差: {std_p:.2f}")

実行結果は以下のようになります。


平均価格: 1483.3333333333333円
中央値: 1400.0円
標準偏差: 318.42

ここで使った:.2fという書き方は、小数点以下が長くなりすぎないように「2桁まで表示してね」という指定です。見やすいレポートを作るためのちょっとしたコツです。

7. データの「最大値・最小値」と「範囲」も知っておこう

7. データの「最大値・最小値」と「範囲」も知っておこう
7. データの「最大値・最小値」と「範囲」も知っておこう

平均や標準偏差だけでなく、データの全体像を掴むには最大値(一番大きな値)最小値(一番小さな値)も重要です。この2つの差を「範囲(レンジ)」と呼び、データの広がりを確認する材料になります。

例えば、あるお店の1週間の来客数を分析してみましょう。最大と最小を知ることで、一番忙しい日と暇な日の差が分かります。


visitors = [45, 60, 38, 92, 120, 85, 77]

# 最大値
max_v = max(visitors)
# 最小値
min_v = min(visitors)

print(f"今週の最大来客数: {max_v}人")
print(f"今週の最小来客数: {min_v}人")
print(f"その差(レンジ): {max_v - min_v}人")

このように、Pythonには最初から備わっている機能(組み込み関数)も多く、これらを組み合わせるだけで立派な統計レポートが作成可能です。

8. なぜPythonで統計を学ぶと将来役立つのか

8. なぜPythonで統計を学ぶと将来役立つのか
8. なぜPythonで統計を学ぶと将来役立つのか

今の世の中は、あらゆる場所でデータが活用されています。スマートフォンの利用履歴、コンビニの売上、スポーツ選手の成績管理など、すべてが数字として蓄積されています。

これらの数字をただ眺めているだけでは、何も見えてきません。しかし、今回学んだ平均、中央値、標準偏差といった武器をPythonで操れるようになれば、「次に売れる商品は何か」「どの工程に無駄があるのか」という予測ができるようになります。

プログラミングと聞くと「アプリを作るもの」というイメージが強いかもしれませんが、実は「意思決定を助けるための強力な計算機」としての側面が非常に大きいです。事務職、営業職、あるいは学生の方であっても、Pythonでデータを扱えるスキルは、あなたの価値を大きく高めてくれるでしょう。

まずは、手近な数字(お小遣い帳の記録や、体重の変化など)をPythonに入れて、今回のコードを試してみてください。エラーが出ても大丈夫です。それを解決していく過程こそが、上達への近道です。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
Python のデータ分析と科学計算の記事一覧へ
新着記事
New1
Python
Pythonの変数とは?定義方法とデータ型を初心者向けに解説
New2
PHP
PHP の型変換を完全ガイド!初心者でもわかる明示的変換・自動変換
New3
PHP
PHPのCSVファイルの読み書きと文字列処理を基礎から解説!初心者向けガイド
New4
PHP
PHPのメモリ管理と変数の破棄方法をやさしく解説!初心者でもわかるunsetの使い方
人気記事
No.1
Java&Spring記事人気No1
Python
PythonでAPIリクエストを送信する方法を完全解説!requestsライブラリで簡単API通信
No.2
Java&Spring記事人気No2
Python
Pythonで経過時間を計測する方法を完全解説!初心者でもわかる time.perf_counter() と time.sleep()
No.3
Java&Spring記事人気No3
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.4
Java&Spring記事人気No4
PHP
PHPの配列をソートする方法!sort, rsort, asort, ksortの使い方を丁寧に解説します!
No.5
Java&Spring記事人気No5
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
No.6
Java&Spring記事人気No6
Python
Pythonのタプルの要素を変更できない理由とその回避策を初心者向けに解説
No.7
Java&Spring記事人気No7
ChatGPT
ChatGPTでPythonコードを作成する方法!プロンプトの書き方と質問例を解説
No.8
Java&Spring記事人気No8
Python
Pythonのrequestsライブラリ完全入門!HTTPリクエストの送り方を初心者向けにやさしく解説