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')