順番に読み進めながら学べます

math と statistics — 単発計算とデータ集計

Python の math / statistics モジュールを基礎から解説します。math.sqrt / pi / floor / ceil / log による単発の数値計算、statistics.mean / median / stdev によるデータの集計関数、2 つのモジュールの役割の違いまで、ハンズオンで学べます。

Python の 数値計算系 モジュールのうち、普通の float で十分なケース を整理します。math1 つの値に対する計算(平方根・対数・三角関数など)を、statisticsデータ列の集計(平均・中央値・標準偏差)を担当します。誤差を厳密に避けたい場合は次の記事で扱う decimal / fractions を使います。

math と statistics の役割の違い
mathsqrt / floor / pistatisticsmean / median / stdev入力: 1 つの数値(int / float)入力: 数値のリスト[1200, 1500, ...]
math1 つの数値 をどう加工するか、statistics値のリスト をどう要約するか。同じ「数値計算」でも入力の形が違うので、用途が見えやすい。

math — 1 つの数値に対する計算

math1 つの数値に対する計算 を提供する標準ライブラリです。math.sqrt で平方根、math.floor / math.ceil で切り捨て・切り上げ、math.log で対数、math.sin / math.cos で三角関数など、教科書的な数学関数が一通り入っています。math.pi / math.e のように 属性として定数 も持っています(円周率・自然対数の底)。

math の主要関数
math.sqrt(x)平方根math.floor(x)切り捨てmath.ceil(x)切り上げmath.log(x, base)対数math.pi円周率 (定数)math.sin(x)math.cos(x)三角関数
math.sqrt(x) は平方根、math.floor(x) / math.ceil(x) は切り捨て・切り上げ、math.log(x, base) は対数。math.pi / math.e値そのもの(関数ではなく属性)。
関数 / 属性意味
math.sqrt(x)平方根 (戻り値は float)math.sqrt(16) → 4.0
math.floor(x)切り捨て (戻り値は int)math.floor(3.7) → 3
math.ceil(x)切り上げ (戻り値は int)math.ceil(3.2) → 4
math.log(x, base)対数 (base 省略時は自然対数)math.log(100, 10) → 2.0
math.pi円周率 (定数)3.141592653589793
math.e自然対数の底 (定数)2.718281828459045
import math

print(math.sqrt(16))         # 4.0  (float)
print(math.floor(3.7))       # 3    (int)
print(math.ceil(3.2))        # 4    (int)
print(math.log(100, 10))     # 2.0
print(math.pi)               # 3.141592653589793
print(round(math.pi, 4))     # 3.1416  (4 桁に丸め)

math モジュールの代表的な関数と定数 を試します。

① math を読み込んでください

math.sqrt16 の平方根 を計算し、16 の平方根: ◯.◯ の形で表示してください

math.floormath.ceil3.7 の切り捨て3.2 の切り上げ を計算し、切り捨て: ◯ 切り上げ: ◯ の形で表示してください

math.pi小数 4 桁に丸めて円周率 (4 桁): ◯.◯◯◯◯ の形で表示してください

(正しく実行できれば解説が表示されます)

Python エディタ

コードを実行してください

statistics — データ集計と要約

statistics複数の値(データ群)を集計 するためのモジュールです。statistics.mean算術平均statistics.median中央値statistics.mode最頻値statistics.stdev標本標準偏差 を 1 行で求められます。外れ値が混じるデータでは中央値(median)が平均より代表値として安定する といった統計の基本も、この 1 モジュールで試せます。

statistics の主要関数
[1200, 1500,1100, 1400]数値のリストstatistics.mean→ 平均statistics.median→ 中央値statistics.stdev→ 標準偏差
statistics.mean は平均、statistics.median は中央値、statistics.mode は最頻値、statistics.stdev は標準偏差。すべて 数値のリスト を受け取って 1 つの数値 を返す。
関数意味
statistics.mean(d)算術平均mean([1,2,3]) → 2
statistics.median(d)中央値 (外れ値に強い)median([1,2,3,4]) → 2.5
statistics.mode(d)最頻値 (一番多く出る値)mode([1,2,2,3]) → 2
statistics.stdev(d)標本標準偏差ばらつきの大きさ
import statistics

prices = [1200, 1500, 1100, 1400]

print(statistics.mean(prices))    # 1300       (平均)
print(statistics.median(prices))  # 1300.0     (中央値)
print(statistics.stdev(prices))   # 約 182.57  (標準偏差)

# 外れ値があると平均と中央値の差が広がる
with_outlier = [1200, 1500, 1100, 1400, 100000]
print(statistics.mean(with_outlier))    # 21040  (外れ値に引っ張られる)
print(statistics.median(with_outlier))  # 1400   (外れ値の影響を受けにくい)

4 商品の価格データ から平均・中央値・標準偏差を求めます。

① statistics を読み込み、4 商品の価格 [1200, 1500, 1100, 1400] をリスト prices に入れてください

statistics.mean平均 を求め、整数に丸めて 平均: ◯ の形で表示してください

statistics.median中央値 を求め、整数に丸めて 中央値: ◯ の形で表示してください

statistics.stdev標準偏差 を求め、小数 1 桁に丸めて 標準偏差: ◯.◯ の形で表示してください

Python エディタ

コードを実行してください
QUIZ

理解度チェック

まずは1問ずつ答えてみましょう。

Q11 つの数値の平方根 を計算するときに使うのはどれですか?

Q2リストの平均 を求めたいとき最も適切なのはどれですか?

Q3外れ値の影響を受けにくい中央値 を求めるのはどれですか?