リスト内のデータの平均数、中位数、および衆数を計算する【python実装】


1つの数列の平均数の定義は、すべての数値の合計を数列の長さの中位数で割って定義し、1つの数列を並べ替えて中間に位置する数値(数列の長さが奇数の場合、真ん中の数を取り、長さが偶数の場合、真ん中の2つの数の平均を除く)の衆数を、1つの数列の中で最も出現回数の多い数値と定義する.pythonコード実装:
#     
def averagenum(num):
    nsum = 0
    for i in range(len(num)):
        nsum += num[i]
    return nsum / len(num)

#     
def mediannum(num):
    listnum = [num[i] for i in range(len(num))]
    listnum.sort()
    lnum = len(num)
    if lnum % 2 == 1:
        i = int((lnum + 1) / 2)-1
        return listnum[i]
    else:
        i = int(lnum / 2)-1
        return (listnum[i] + listnum[i + 1]) / 2

#    
def publicnum(num, d = 0):
    dictnum = {}
    for i in range(len(num)):
        if num[i] in dictnum.keys():
            dictnum[num[i]] += 1
        else:
            dictnum.setdefault(num[i], 1)
    maxnum = 0
    maxkey = 0
    for k, v in dictnum.items():
        if v > maxnum:
            maxnum = v
            maxkey = k
    return maxkey

定義:
a = [1, 1 , 2, 5, 7, 9, 9, 9, 20, 7, 9, 55]

テスト:
In [1]:averagenum(a)
Out[1]:
11.166666666666666
In [2]:mediannum(a)
Out[2]:
8.0
In [3]:publicnum(a)
Out[3]:
9

実行結果が正しい!(コードはpython 3ベース)