计算一个list中数据的平均数、中位数和众数【python实现】

计算一个list中数据的平均数、中位数和众数【python实现】一个数列的平均数的定义为,所有数值求和再除以数列长度中位数定义为,将一个数列排序后位于中间的数值(数列长度为奇数时,取正中间的数,长度为偶数时,去中间的两个数的平均)众数定义为,在一个数列中,出现次数最多的那个数值。python代码实现:#计算平均数defaveragenum(num):nsum=0foriinrange(len(num)):

大家好,欢迎来到IT知识分享网。计算一个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的)

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/21512.html

(0)
上一篇 2024-01-18 18:00
下一篇 2024-01-18 21:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信