计算一个list中数据的平均数、中位数和众数【python实现】
一个数列的平均数的定义为,所有数值求和再除以数列长度中位数定义为,将一个数列排序后位于中间的数值(数列长度为奇数时,取正中间的数,长度为偶数时,去中间的两个数的平均)众数定义为,在一个数列中,出现次数最多的那个数值。python代码实现:#计算平均数def averagenum(num):nsum = 0for i in range(len(num)):
·
一个数列的平均数的定义为,所有数值求和再除以数列长度
中位数定义为,将一个数列排序后位于中间的数值(数列长度为奇数时,取正中间的数,长度为偶数时,去中间的两个数的平均)
众数定义为,在一个数列中,出现次数最多的那个数值。
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的)
更多推荐
所有评论(0)