重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
pandas有mode()函数是求众数的
创新互联建站拥有一支富有激情的企业网站制作团队,在互联网网站建设行业深耕10年,专业且经验丰富。10年网站优化营销经验,我们已为数千家中小企业提供了成都做网站、网站制作解决方案,按需制作,设计满意,售后服务无忧。所有客户皆提供一年免费网站维护!
df=pandas.DataFrame({'key1':['a','a','b','b','a'],'key2':['one','two','one','two','one']})
df.mode()
key1 key2
0 a one
没看你的程序,帮你写了一个。
# coding=utf-8
a = [1,5,2,6,2,5,1,6,6,2,5,1,1,6,2,8,2,0,5,4,1,3]
b = {}
for i in a:
if i in b.keys():
b[i] += 1
else:
b[i] = 1
c = sorted(b.items(), key=lambda x:x[1], reverse=True)
print '众数:', c[0][0], '众数个数:', c[0][1]
使用特定代码求。
众数是指在统计分布上具有明显集中趋势点的数值,代表数据的一般水平。也是一组数据中出现次数最多的数值,有时众数在一组数中有好几个,用M表示。
众数是样本观测值在频数分布表中频数最多的那一组的组中值,主要应用于大面积普查研究之中。
众数是在一组数据中,出现次数最多的数据,是一组数据中的原数据,而不是相应的次数。
难度:★☆☆☆☆
类型:数学
给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在众数。
示例 1:
输入: [3,2,3]
输出: 3
示例 2:
输入: [2,2,1,1,1,2,2]
输出: 2
为了找到出现次数最多的数,最简单的逻辑就是统计每次数字出现的次数,再拿取出其中出现次数最多的数字。该方法道理简单,但是内存开销较大。
这道题目所求的众数的定义与常规概念不同的是,这里众数的出现次数要比数组中其他所有元素要多的,根据这个原理,我们将结果变量(res)初始化为数组第一个数,另外准备一个统计变量(count),当这个变量遇到和结果相同的数则加一,否则减一,减为零时更换结果变量为下一个数,由于众数出现次数多于其他字符,那么数组遍历结束后统计变量一定大于零,且此时结果变量中的数即为众数。
这里众数的的出现次数超过其他元素,因此我们将数据进行排序后,最中间的数字一定是众数。
如有疑问或建议,欢迎评论区留言~
import numpy as np
a = np.array([1,2,3,1,2,1,1,1,3,2,2,1])
counts = np.bincount(a)
print np.argmax(counts)
1