Python でリストの中央値を求める

Manav Narula 2023年1月30日
  1. Python でリストの中央値を求めるには statistics モジュールを使用する
  2. Python でリストの中央値を求めるには numpy.percentile 関数を使用する
  3. Python でカスタムコードを使用してリストの中央値を求める
Python でリストの中央値を求める

統計学と確率の世界では、与えられたオブザベーションの集合の中央値は、中間の要素です。これは、要素の総数が奇数と偶数では計算が異なります。

データや統計解析には Python がよく使われています。このチュートリアルでは、Python でリストの中央値を計算する方法を紹介します。

Python でリストの中央値を求めるには statistics モジュールを使用する

Python には、データの集合から異なる統計値を求めるためのさまざまな関数やクラスを持つ statistics モジュールがあります。このライブラリの median() 関数を用いると、リストの中央値を求めることができます。

中央値はソートされたリストに基づいているので、median() 関数は自動的にソートして中央値を返します。例えば、

import statistics

lst = [7, 8, 9, 5, 1, 2, 2, 3, 4, 5]

print(statistics.median(lst))

出力:

4.5

Python でリストの中央値を求めるには numpy.percentile 関数を使用する

NumPy モジュールには、配列からパーセンタイル値を求める関数があります。データの中央値は 50%のパーセンタイル値です。これを求めるには、NumPy モジュールの percentile() 関数を用いて 50 パーセンタイル値を計算します。以下のコードを参照してください。

import numpy as np

a = np.array([7, 8, 9, 5, 1, 2, 2, 3, 4, 5])
median_value = np.percentile(a, 50)
print(median_value)

出力:

4.5

Python でカスタムコードを使用してリストの中央値を求める

また、Python を使ってデータの中央値を求める式を適用して、ユーザー定義の関数を作成することもできます。例えば、以下のようになります。

lst = [7, 8, 9, 5, 1, 2, 2, 3, 4, 5]


def median(l):
    half = len(l) // 2
    l.sort()
    if not len(l) % 2:
        return (l[half - 1] + l[half]) / 2.0
    return l[half]


print(median(lst))

出力:

4.5

リストの中央値は、リストの長さが奇数の場合はソートされたリストの中間要素であり、そうでない場合は、2つの中間要素の平均です。

著者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

関連記事 - Python Math