1. 程式人生 > >計算一個list中資料的平均數、中位數和眾數【python實現】

計算一個list中資料的平均數、中位數和眾數【python實現】

一個數列的平均數的定義為,所有數值求和再除以數列長度
中位數定義為,將一個數列排序後位於中間的數值(數列長度為奇數時,取正中間的數,長度為偶數時,去中間的兩個數的平均)
眾數定義為,在一個數列中,出現次數最多的那個數值。
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

執行結果正確!
(程式碼是基於python3的)