Pythonでリストの中央値を見つける 質問する

Pythonでリストの中央値を見つける 質問する

Python でリストの中央値を見つけるにはどうすればよいでしょうか? リストのサイズは任意で、数字が特定の順序になっているとは限りません。

リストに偶数個の要素が含まれている場合、関数は中央の 2 つの要素の平均を返します。

以下にいくつかの例を示します (表示のために並べ替えられています)。

median([1]) == 1
median([1, 1]) == 1
median([1, 1, 2, 4]) == 1.5
median([0, 2, 5, 6, 8, 9, 9]) == 6
median([0, 0, 0, 0, 4, 4, 6, 8]) == 2

ベストアンサー1

Python 3.4にはstatistics.median:

数値データの中央値を返します。

データ ポイントの数が奇数の場合は、中央のデータ ポイントを返します。データ ポイントの数が偶数の場合は、中央の 2 つの値の平均を取ることで中央値が補間されます。

>>> median([1, 3, 5])
3
>>> median([1, 3, 5, 7])
4.0

使用法:

import statistics

items = [6, 1, 8, 2, 3]

statistics.median(items)
#>>> 3

型に関してもかなり慎重です:

statistics.median(map(float, items))
#>>> 3.0

from decimal import Decimal
statistics.median(map(Decimal, items))
#>>> Decimal('3')

おすすめ記事