計算一個list中資料的平均數、中位數和眾數【python實現】
阿新 • • 發佈:2019-02-12
一個數列的平均數的定義為,所有數值求和再除以數列長度
中位數定義為,將一個數列排序後位於中間的數值(數列長度為奇數時,取正中間的數,長度為偶數時,去中間的兩個數的平均)
眾數定義為,在一個數列中,出現次數最多的那個數值。
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的)