python如何求一个众数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python如何求一个众数相关的知识,希望对你有一定的参考价值。

参考技术A 给定一个长度为n的数组,返回众数。众数是指数组中出现次数超过n/2次的元素

假设数组非空,众数一定存在

Example 1:

Input: [3,2,3]
Output: 3
Example 2:

Input: [2,2,1,1,1,2,2]
Output: 2
1:字典,累记数组中出现的各元素的次数,一旦发现超过n/2次的元素就返回该元素

def majorityElement(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if len(nums)==1:
return nums[0]
numDic =
for i in nums:
if numDic.has_key(i):
numDic[i] += 1
if numDic.get(i)>=(len(nums)+1)/2:
return i
else:
numDic[i] = 1
2:利用list.count()方法判断(注意for循环中如果是访问整个nums列表会出现“超出时间限制”的错误)

def majorityElement(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
for i in nums[len(nums)//2:]:
if nums.count(i)>len(nums)//2:
return i
3:sorted(nums)[len(nums)//2]

def majorityElement(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
return sorted(nums)[len(nums)//2]

怎样求众数和中位数

明明参加“超级少年”比赛,7位评委给他打的分数是90,89,85,92,88,94,92。那么评委们打的平均分是( ) 分,这组数据的众数是 ( ) 分,中位数是 ( ) 分。

  一、众数

    众数(Mode)统计学名词,在统计分布上具有明显集中趋势点的数值,代表数据的一般水平(众数可以不存在或多于一个)。 修正定义:是一组数据中出现次数最多的数值,叫众数,有时众数在一组数中有好几个。用M表示。 理性理解:简单的说,就是一组数据中占比例最多的那个数。

  计算方法

  (一)、根据单项数列求众数,不需要任何计算,可以直接从分配数列中找出出现次数或频率最大的一组标志值,就是所求的众数。

  (二)、对组距数列求众数。对众数的计算有两种公式:

  其中:f表示众数所在组次数;

  f-1表示众数所在组前一组的次数;

  f+1表示众数所在组

  众数 下限公式

  后一组的次数;

  L表示众数所在组组距的下限;

  U表示众数所在组组距的上限;

  i表示组距。

  二、中位数

  中位数(又称中值,英语:Median),统计学中的专有名词,代表一个样本、种群或概率分布中的一个数值,其可将数值集合划分为相等的上下两部分。对于有限的数集,可以通过把所有观察值高低排序后找出正中间的一个作为中位数。如果观察值有偶数个,通常取最中间的两个数值的平均数作为中位数。

  计算方法

  一个数集中最多有一半的数值小于中位数,也最多有一半的数值大于中位数。如果大于和小于中位数的数值个数均少于一半,那麽数集中必有若干值等同于中位数。

  设连续随机变量X的分布函数为F(X),那么满足条P(X≤m)=F(m)=1/2的数称为X或分布F的中位数。

  对于一组有限个数的数据来说,它们的中位数是这样的一种数:这群数据里的一半的数据比它大,而另外一半数据比它小。 计算有限个数的数据的中位数的方法是:把所有的同类数据按照大小的顺序排列。如果数据的个数是奇数,则中间那个数据就是这群数据的中位数;如果数据的个数是偶数,则中间那2个数据的算术平均值就是这群数据的中位数。

  中位数:也就是选取中间的数。一种衡量集中趋势的方法。

  要找中位数,首先需要从小到大排序,例如这组数据:23、29、20、32、23、21、33、25;

  将数据排序20、21、23、23、25、29、32、33;

  若有n个数,n为奇数,则选择第(n+1)/2个为中位数,若n为偶数,则中位数是(n/2以及n+1/2)的平均数。

参考技术A 均数就是几个数相加,除以数字的个数,本题为90.
众数指一组数字中重复次数最多的数,本题有2个92,所以众数是92.
中位数是将一组数字从小到大排列,最中间的那个数,本题排序后为:85,88,89,90,92,92,94,中间的数字是90。一般中位数指排序后的数字有50%个数字大于中位数,有50%的数字小于中位数。如果是偶数个数字,中位数是最中间两个数字的平均数。追问

最后一个答案是什么

追答

中位数是将一组数字从小到大排列,最中间的那个数,本题排序后为:85,88,89,90,92,92,94,中间的数字是90,所以中位数是90。

本回答被提问者采纳

以上是关于python如何求一个众数的主要内容,如果未能解决你的问题,请参考以下文章

众数怎么求

怎样求众数和中位数

如何使用分治法求众数

用python 求一个数组中最大的三个元素及其所在位置

Numpy求均值中位数众数的方法

JAVA中求某个数组的众数?自己写了个,但是不对