精华内容
下载资源
问答
  • MySQL查询一组数据的众数和中位数

    千次阅读 2019-03-05 14:00:41
    查询一组数据的众数: 方法1:仅适用于一组数据只有一个众数的情况 1)首先对数据按照值的不同进行分组,并对每组的数据进行计数,再根据计数的大小进行降序排序; 2)上述1)结果集的第一行即要求取的众数...

    查询一组数据的众数:

    方法1:仅适用于一组数据只有一个众数的情况

        1)首先对数据按照值的不同进行分组,并对每组中的数据进行计数,再根据计数的大小进行降序排序;

        2)上述1)中结果集的第一行即要求取的众数所在的行。

    方法2:适用于一组数据有一个或多个众数的情况

        1)首先对数据按照值的不同进行分组,并对每组中的数据进行计数;

        2)使用max函数找出统计个数的最大值及其对应的被统计值,此被统计值就是要求的众数。

    创建测试用表:

    # 创建学生成绩表:
    create table grade(
    id int,
    name varchar(10),
    score int (10)
    )engine myisam charset utf8mb4;
     
    # 向成绩表中插入数据:
    insert into grade values
    (1,'张无忌',85),
    (2,'李隆基',59),
    (3,'王五',60),
    (4,'曹操',79),
    (5,'小明',90),
    (6,'如花',60),
    (7,'尉迟恭',100),
    (8,'欧阳风',90),
    (9,'刘备',90),
    (10,'董永',99),
    (11,'冯钰',83),
    (12,'孙殿英',82);
    

    查询学生成绩表garde中分数的众数及其出现的次数:

    先查看garde表的整体信息:

    select * from garde

    方法1代码及查询结果:

    方法2代码及查询结果:

    为简化SQL语句,将方法2中的第一步处理——对数据按照值的不同进行分组,并对每组中的数据进行计数写成视图:

    create view grouped_grade as
    select score,count(score) as number from grade group by score;

    查看视图grouped_grade中的信息:

    select score,number from grouped_grade;

    使用max函数从视图grouped_grade中找到所有分数的众数及其出现的次数:

    select score,number from grouped_grade where number=(select max(number) from grouped_grade);

    查询结果为:

    查询一组数据的中位数:

    网上看到一个很巧妙的方法:

    SET @rowindex := -1;
     
    SELECT
       AVG(g.score) AS median
    FROM
       (SELECT @rowindex:=@rowindex + 1 AS rowindex,
               score 
        FROM grade
        ORDER BY score) AS g
    WHERE
    g.rowindex IN (FLOOR(@rowindex / 2) , CEIL(@rowindex / 2));

    代码解析:上述查询方法的核心思想是对于一组要求其中位数的数据,无论数据的总行数是奇数还是偶数,都取这组数据排序后最中间的两个数的平均值作为中位数(当数据的总行数是奇数时,数据经排序后最中间的数取两次以计算平均值)。

    上述代码的查询结果为:

    对grade表中的score按照升序进行排序,根据排序结果验证前文查询出的中位数是否正确:

    经比较可知,前文查询出的中位数是正确的。

    参考:

    https://blog.csdn.net/qq_41080850/article/details/86310311

    https://blog.csdn.net/hj7jay/article/details/78130419

    展开全文
  • //2、写个函数:给定数中位数 int getMid(int a[], int size) { int i,j,t; int mid; for (i=0;i<size-1;i++)//i为排序的趟数 { for(j=0;j<size-i-1;j++)//j为第i趟需比较的次数 { ...

    //2、写一个函数:求给定数组的中位数
    int getMid(int a[], int size)
    {

    int i,j,t;
    int mid;
    for (i=0;i<size-1;i++)//i为排序的趟数
    {
    	for(j=0;j<size-i-1;j++)//j为第i趟需比较的次数
    	{
    		if(a[j]>a[j+1])
    		{
    			t=a[j];
    			a[j]=a[j+1];
    			a[j+1]=t;
    		}
    	}
    }
    if(size%2==0)//判断元素个数是否为偶数
    {
    	mid=(a[size/2]+a[size/2-1])/2;
    	printf("偶数的中位数是:%d\n",mid);
    }
    else
    	mid=a[(size-1)/2];
    return mid;
    

    }
    int main () {

    int p[]={8,5,4,3,9,6};
    int size=sizeof(p)/sizeof(int);
    printf("2、中位数是:%d\n",getMid(p,size));
    return 0;
    

    }

    展开全文
  •  从中位数的定义可知,所研究的数据中有一半小于中位数,一半大于中位数中位数的作用与算术平均数相近,也是作为所研究数据的代表值。在个等差数列或个正态分布数列中,中位数就等于算术平均数。 在数列中...

    中位

        中位数是指将数据按大小顺序排列起来,形成一个数列,居于数列中间位置的那个数据。中位数用Me表示。

       从中位数的定义可知,所研究的数据中有一半小于中位数,一半大于中位数。中位数的作用与算术平均数相近,也是作为所研究数据的代表值。在一个等差数列或一个正态分布数列中,中位数就等于算术平均数。

    在数列中出现了极端变量值的情况下,用中位数作为代表值要比用算术平均数更好,因为中位数不受极端变量值的影响;如果研究目的就是为了反映中间水平,当然也应该用中位数。在统计数据的处理和分析时,可结合使用中位数。

         中位数的计算:确定中位数,必须将总体各单位的标志值按大小顺序排列,最好是编制出变量数列。这里有两种情况:

         1、对于未分组的原始资料,首先必须将标志值按大小排序。设排序的结果为:

          

         则中位数就可以按下面的方式确定:

         

       例如,根据下表的数据,计算50名工人日加工零件数的中位数。

        

        中位数的位置在(50+1)/2 = 25.5,中位数在第25个数值(123)和第26个数值(123)之间,即Me = (123+123)/2=123(件)。

         2、由分组资料确定中位数

         由组距数列确定中位数,应先按的公式求出中位数所在组的位置,然后再按下限公式或上限公式确定中位数。

         

         公式中:

             Me——中位数;

             L——中位数所在组下限;

             U——中位数所在组上限;

             fm——为中位数所在组的次数;

            ——总次数;

            d——中位数所在组的组距;

            Sm − 1——中位数所在组以下的累计次数;

            Sm + 1——中位数所在组以上的累计次数。

        例:根据上面例表的数据,计算50名工人日加工零件数的中位数。

      解(某企业50名工人加工零件中位数计算表):

         

        由上表可知,中位数的位置=50/2=25,即中位数在120~125这一组,L=120,Sm − 1 = 16,U=125,Sm + 1 = 20,fm = 14,d=5,根据中位数公式得:

        

     

       3

         众数是指一组数据中出现次数最多的那个数据,一组数据可以有多个众数,也可以没有众数。众数是由英国统计学家皮尔生首先提出来的。所谓众数是指社会经济现象中最普遍出现的标志值。从分布角度看,众数是具有明显集中趋势的数值。

        统计上把这种在一组数据中出现次数最多的变量值叫做众数。用Mo表示。它主要用于定类(品质标志)数据的集中趋势,当然也适用于作为定序(品质标志)数据以及定距和定比(数量标志)数据集中趋势的测度值。

         众数的计算:一般情况下,找出一组数据中出现次数最多的数值即可。但若所掌握的资料是组距式数列,则只能按一定的方法来推算众数的近似值。计算公式为:

         

        公式中:

           L——众数所在组下限;

           U——众数所在组上限;

           ——众数所在组次数与其下限的邻组次数之差;

           ——众数所在组次数与其上限的邻组次数之差;

           d——众数所在组组距。

      例:根据下表的数据,计算50名工人日加工零件数的众数。

           

         解:从表中的数据可以看出,最大的频数值是14,即众数组为120~125这一组,根据公式得50名工人日加工零件的众数为:

           

           众数是一种位置平均数,是总体中出现次数最多的变量值,因而在实际工作中有时有它特殊的用途。诸如,要说明一个企业中工人最普遍的技术等级,说明消费者需要的内衣、鞋袜、帽子等最普遍的号码,说明农贸市场上某种农副产品最普遍的成交价格等,都需要利用众数。但是必须注意,从分布的角度看,众数是具有明显集中趋势点的数值,一组数据分布的最高峰点所对应的数值即为众数。当然,如果数据的分布没有明显的集中趋势或最高峰点,众数也可能不存在;如果有两个最高峰点,也可以有两个众数。只有在总体单位比较多,而且又明显地集中于某个变量值时,计算众数才有意义。

           如果一组数据中存在离群值,中位数和众数一般不受离群值的影响,算术平均数容易受到离群值的影响。

    展开全文
  • python求解中位数、均值、众数

    万次阅读 2019-02-16 11:19:19
    求中位数  中位数(又称中值,英语:Median),统计学中的专有名词,代表个样本、种群或概率分布中的个数值,其可将数值集合划分为相等的上下两部分。对于有限的数集,可以通过把所有观察值高低排序后找出...

    首先定义一个数据,在这里我假定为:

    num=[2,3,2,5,1,0,1,2,9]

    一、求中位数

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

           一个数集中最多有一半的数值小于中位数,也最多有一半的数值大于中位数。如果大于和小于中位数的数值个数均少于一半,那么数集中必有若干值等同于中位数。设连续随机变量X的分布函数为F(X),那么满足条件P(X≤m)=F(m)=1/2的数称为X或分布F的中位数。对于一组有限个数的数据来说,其中位数是这样的一种数:这群数据的一半的数据比它大,而另外一半数据比它小。

           计算有限个数的数据的中位数的方法是:把所有的同类数据按照大小的顺序排列。如果数据的个数是奇数,则中间那个数据就是这群数据的中位数;如果数据的个数是偶数,则中间那2个数据算术平均值就是这群数据的中位数。

    import numpy as np
    np.median(num)

    二、求均值

           平均数(英语:Mean,或称平均值)是统计中的一个重要概念。为集中趋势的最常用测度值,目的是确定一组数据的均衡点。算术平均数(或简称平均数)是一组样本x_{1},x_{2},\ldots ,x_{n} 的和除以样本的数量。其通常记作\bar{x}{\bar  {x}}={\frac  {x_{1}+x_{2}+\cdots +x_{n}}{n}}

           例如, 4,36,45,50,75 ,这组数的算术平均数是:{\frac  {4+36+45+50+75}{5}}={\frac  {210}{5}}=42

           在统计中算术平均数常用于表示统计对象的一般水平,它是描述数据集中程度的一个统计量。我们既可以用它来反映一组数据的一般情况,也可以用它进行不同组数据的比较,以看出组与组之间的差别。用平均数表示一组数据的情况,有直观、简明的特点,所以在日常生活中经常用到,如平均的速度、平均的身高、平均的产量、平均的成绩......“ 范围 ” 用于数值型数据,不能用于分类数据和顺序数据。

    import numpy as np
    np.mean(num)
    

    三、求众数

          众数(mode)指一组数据中出现次数最多的数据值。例如{2,3,3,3}中,出现最多的是3,因此众数是3,众数可能是一个数,但也可能是多个数。在离散概率分布中,众数是指概率质量函数有最大值的数据,也就是最容易取様到的数据。在连续概率分布中,众数是指机率密度函数有最大值的数据,也就是机率密度函数的峰值。在统计学上,众数和平均数中位数类似,都是总体随机变量有关集中趋势的重要资讯。在高斯分布正态分布)中,众数位于峰值,和平均数中位数相同。但若分布是高度偏斜分布,众数可能会和平均数、中位数有很大的差异。

           分布中的众数不一定只有一个,若概率质量函数或机率密度函数在x1, x2……等多个点都有最大值,就会有多个众数,最极端的情形是离散型均匀分布,所有的点概率都相同,所有的点都是众数。若机率密度函数有数个局部最大值,一般会将这几个极值都称为众数,此连续机率分布会称为多峰分布(和单峰性相反)。若是对称的单峰分布(例如正态分布),众数和平均数中位数会重合[1]。若一随机变量是由对称的总体中产生,可以用取样的平均值来估计总体的众数。

    方法一:用numpy中建立元素出现次数的索引的方法求众数

    import numpy as np
    c=np.bincount(num)
    np.argmax(c)

    方法二:直接利用scipy下stats模块

    from scipy import stats
    stats.mode(num)[0][0]

     

    展开全文
  • 或许当你看到行代码的...)就像进行数据处理的时候,有时会遇到极值(最大值、最小值)、平均值、中位数和四分位数(25%、 75%)的情况。 这篇博客就是你的福音,让你绝对0基础使用python 进行数据分析。 ...
  • #include&lt;stdio.h&gt; int main() { int i, j, t, n, a;...输入%d个\n", n); for (i = 0; i &lt; n; i++) { scanf("%d", &amp;s[i] ); } for (i = 0; i &lt; n..
  • (1)出它是几位数; (2)分别输出每位数字; (3)按逆序输出各位数字,例如原数为123,应输出321; 2. 代码 #include &amp;amp;lt;stdio.h&amp;amp;gt; #include &amp;amp;lt;stdbool.h&...
  • 水题 求中位数

    千次阅读 2019-01-02 18:25:08
    中位数定义:一组数据按从小到大的顺序依次排列,处在中间位置的一个数(或最中间两个数据的平均数). 给出一组无序整数,中位数,如果最中间两个数的平均数,向下取整即可(不需要使用浮点数) 输入描述: ...
  • C++实现求中位数

    千次阅读 2020-03-14 20:04:03
    中位数定义:一组数据按从小到大的顺序依次排列,处在中间位置的一个数(或最中间两个数据的平均数). 给出一组无序整数,中位数,如果最中间两个数的平均数,向下取整即可(不需要使用浮点数) 输入输出格式 ...
  • 无序数组的中位数(c语言版本)

    千次阅读 2019-03-22 16:06:41
    在面试时,会经常被问道,如何求解个无序数组的中位数?很多人往往都会第感觉就是,先将该数组排序,然后找出最中间的那个数,但是这种思路通常的时间复杂度最好是O(nlogn),更糟的情况下会到O(n^2),并不是最优...
  • 大数据求中位数(插值计算)

    千次阅读 2020-06-15 11:48:24
    在学数学时我们学到过求中位数的方法,在数据个数为偶数时找最中间的两个数然后平均数如果数据个数为奇数时则只需找数据个数一半的那位上的数字即可代表中位数(前提是数组是有序的) java代码如下: public ...
  • 程序设计-N个数的中位数(C++)

    万次阅读 2019-02-28 10:19:02
    分享一个大牛的人工智能教程。... * 对于一组有有限个数的数据来说,它们的中位数是这样的一种数:这群数据里的一半的数据比它大,而另外一半数据比它小。 * 计算有限个数的数据中位数的方法是:把所有的同类...
  • 中位数

    千次阅读 2015-10-11 18:07:50
    中位数定义:一组数据按从小到大的顺序依次排列,处在中间位置的一个数或最中间两个数据的平均值(如果这组数的个数为奇数,则中位数为位于中间位置的那个数;如果这组数的个数为偶数,则中位数是位于中间位置的两个...
  • 中位数定义为,将个数列排序后位于中间的数值(数列长度为奇数时,取正中间的数,长度为偶数时,去中间的两个数的平均) 众数定义为,在个数列中,出现次数最多的那个数值。 python代码实现:#计算平均数 def ...
  • python之求中位数

    万次阅读 2018-04-26 20:23:28
    求中位数 给你个整数列表L, 输出L的中位数(若结果为小数,则保留位小数)。 例如: L=[0,1,2,3,4] 则输出:2 2.说明 如果列表有奇数个整数,则输出中间那个 如果列表有偶数个整数,则输出中间两个...
  •  中位数:分类数据组的中间值(如果数据个数为偶数,则是两个中间数值和的一半)  众数:数据组中出现次数最多的值(或者一组值)   异常值:比几乎其他所有数字都要 大/小 很多的数值   加权平均值:对变量在...
  • python:list的中位数

    千次阅读 2016-08-09 23:40:13
    L.sort() n = len(L) m = n/2 if n == 0: print 'None' elif n%2 == 0: print "%.1f"%((L[m]+L[m-1])/2.0) ...给你个list L, 如 L=[0,1,2,3,4], 输出L的中位数(若结果为小数,则保留位小数)。
  • 中位数(C语言)

    万次阅读 2017-06-19 17:50:46
    Description 计算有限个数的数据中位数的方法是:把所有的同类数据按照大小的顺序...现在给出n个正整数,他们的中位数。 Input 第行:n——数列数字的个数(1。 第二行:有n个正整数,每两个数中间用空格隔
  • 一组数据距离数据中心的靠近程度
  • 计算串数组的均值、中位数、标准差 #!/usr/bin/env python #-*- coding:utf-8 -*- ''' @author : FIGTHING @file : DataMining.py @function: @software: Pycharm @time : 2019/06/13/15:40 ''' import numpy as...
  • 找出个无序数组的中位数

    千次阅读 2019-03-25 08:47:40
    要解决这个问题首先要了解什仫是中位数,所谓的中位数就是在一组有序的数字中找到中间的那个数字。如果数字的个数是奇数则直接返回中间的那个数,如果数字的个数是偶数此时这组数据中位数有两个,取中间两个数的...
  • 学习了用R计算样本数据的平均值之后(用R计算均值),下面继续学习其他统计量。 中位数 定义: 为什么要有中位数?...我们要知道的是,均值描述并不总是可靠的或最佳的。...中位数定义为数据排序位
  • bfptr算法(即中位数中位数算法)

    万次阅读 多人点赞 2018-08-25 22:35:16
    BFPRT算法是解决从n个数中选择第k大或第k小的这个经典问题的著名算法,但很多人并不了解其细节。本文将首先介绍求解这个第k小数字问题的几个思路,然后重点介绍在最坏情况下复杂度仍然为O(n)的BFPRT算法。 ...
  • 【算法】无序数组中求中位数

    千次阅读 2017-10-05 11:23:31
    求一个无序数组的中位数。 如:{2,5,4,9,3,6,8,7,1}的中位数为5。 要求:不能使用排序,时间复杂度O(n)。 分析因为题目指定不能使用排序算法,而且要求时间复杂度O(n),也就是要求次遍历就得给出结果。所以排序...
  • Python求一组数据的均值,方差,标准差 代码如下: def get_mean_var_std(arr): import numpy as np #均值 arr_mean = np.mean(arr) #方差 arr_var = np.var(arr) #标准差 arr_std = np.std(arr,...
  • #include<... printf("输入数组元素个:\n"); scanf("%d",&n); printf("输入%d个整数:\n",n); if(n<1||n>100) return 0;//程序读到return后就不再执行 for(i=0;i<n;i++...
  • python中获取中位数的两种方法

    千次阅读 2020-09-27 14:12:51
    对列表进行排序,然后根据长度为奇数或者偶数的不同情况计算中位数 def huahua(x): length = len(x) print(length) x.sort() print(x) if (length % 2)== 1: z=length // 2 y = x[z] else: y = (x[length//...
  • 代码实现三个数中的中位数

    千次阅读 2019-07-14 18:21:41
    1.中位数举例 给定一组数arr1 = [1,3,0,2,6](奇数的情况)其中位数 对arr1根据数值大小重新排列:arr1_new = [0,1,2,3,6] 因此,arr1的中位数为2(2在中间位置) 给定一组数arr2 = [1,3,0,2,6,5](偶数的情况...
  • 数组的平均数,中位数,众数

    千次阅读 2017-12-28 19:37:42
    题目给定个长度为100的整型数组。...输入:81 2 3 9 9 4 0 6输出:中位数:3.500000平均数:4.250000众数:9.000000代码如下:#include//冒泡排序void paixu(int a[],int n){ int i,j,t; for(i=0;i

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 718,767
精华内容 287,506
关键字:

一组数据中位数怎么求