本文主要介绍2020年全国各省高考分数线分布的数据分析。顺便可以用这个数据看看各省市的分线率,以及其他相关数据。有需要的朋友可以参考一下。
开始
突发奇想,想看看高考分数分布。把每个省市的分数标成0-100分怎么样?简单来说,我认为最高分100分,最低分0分。只需计算每个分数段的人数。
对了,你可以用这个数据来看看各省市的一个分线率,以及其他相关数据。
看起来比较简单。试试看。
数据收集
我在网上查了一下,现在每年高考人数已经超过1000万,河南甚至超过100万。
来源:新浪教育https://edu.sina.cn/zt_d/gkbm
省/市
2020年
2019
2018年
2017年
2016年
2015
2014
2013
2012
整个国家
71万
31万
950,000 .
40万
900,000
920,000 .
390,000 .
920,000
950,000
河南省
158,000
100万
98.3万元
83,000
80,000
72000元
74,000
76,300
80.5万元
广东
78.8万元
78,000
75.8万元
757,000
73,000
74,000
75.6万元
77,000
69.2万元
四川省
670,000
650,000=
60,000 .
58.3万元
71,300
超过57万
571,700
540,000=
58,000
河北省
624,800
59,600
48.6万元
46,000
423,100
404,800
418,200
49,800
45.93万
安徽省
523,800
53,000
499,000
499,000
509,900
546,000
57,000
51,000
506,000
湖南
57,000
500,000
452,000
41,000
401,600
389,900
38,000
33,000
352,000
山东(省)
30,000
59,900
59.2万元
583,000
60.2万元
696,100
58,000
500,000
50,000
广西
507,000
460,000
400,000
35,000
3万多元
近31万
35,000
298,000
285,000
贵州(省)
470,000=
458,000
41,000
42,000
373,800
30,500 .
292,700 .
247,800
28,000
江西
38.94万
41,000
38万元
35,000
360,600
354,600
325,900
274,300
29,000
湖北省
394,800
38.4万元
34,000
32,000
36.14万
36.84万
402,700
48,000
47,000
江苏省
348,900
39,000
30,000
30,000
360,400
39.29万
425,700
41,000
44,000
山西
36,000
34,000
305,000
37,000
39,000
342,200
34.16万
358,000
31,000
云南省
343,000
36,000
300,000
293,000
280,000=
272,100
255,900
26,000
20,000
山西省
322,300
325,900
31.9万
39,000
38000多元
344,000
353,000
36.65万
3.753万
浙江省
325,700
35,000
30.6万元
291,000
307,400
317,900
308,600
33,000
36,000
重庆
283,000
24,000
250,000=
27,000
248,800
255,400
250,600
25,000 .
20,000 .
辽宁省
24,000
185,000
208,000
28,200
25,100
29,000
24,000
26,000
甘肃
263,100
28,000
23,000
285,000
29.6万余元
303,800
297,000
283,000
29.6
黑龙江省
21,000
206,000
19,000
188000
197,000
198,000
2.04万
208,000
20,000 .
福建省
202,600
207,800
200,000
18.8万元
15,000
18.93万
25.5万
25,000
20,000
内蒙古
197901
195,000
198,000
201,100
184,000
188000
19.3万元
18.95万
新疆
29,300
207,000
18.4万元
166,100
160,500
162,600
158,700
154,700
吉林省
15万元以上
15万元
143,000
148,500
137,600
160,200 .
159,000
12,000
宁夏
60298
71,700
六万九千
六万九千
6.9万元
67,000
64,000
58,700
60,200 .
海南
57336
5.9万元
58,000
57000
60,400
6.2万元
61,000
56000元
五万五千元
北京
49225
59,000
63,000
6万元
61,200
68,000
70,500
72,700
73,000
青海
46620
44313
42000
4.6万元
45,000
42,000
39,700
40,600 .
38,000
天津
56258
五万五
五万五千元
57000
6万左右
61000
大约6万
63000
64,000
上海
50,000
50,000
大约51,000
51000
52000
53,000
五万五千元
西藏
32973
25,000
28,000
24,000
21,000
19,600
18,900
一万九千元
本表数据为全国各省市数据(港澳台除外)。各省市在成绩出来后会拿出自己的一张张表格,统计每一分得分的人数。我们以这个数据为标准。因为个人还是没有太多精力去收集数据,所以我在网上找到了高考100一一表。
这个网站,里面给出了每个省市的表格,excel版本。稍微查了一下,数据应该没错,我就暂时以这个数据为准。
数据太多了。暂时只在35万人以上的省市工作。只有11个省市,加上北京上海的数据。
河南省
河北省
广东
广西
湖南
湖北省
江西
贵州(省)
安徽省
四川省
山东(省)
北京
上海
其中北京、上海不分科,山东在考,所以一共23个数据表。后续,我也会尽量把数据也上传。
数据整理
上面也提到,北京、上海、山东比较特殊。我们就按文理一起算。每个省份给出最高分及以上数据,然后给出100分及以下数据,但不是每个省份都在100分以下,需要特别考虑。
不同高考政策与分类
山东的高考政策不明确,但好像是考生在6门辅修课中选了3门。从一张图了解山东高考改革要点。
在这里找到的。
我们不做分科,只看山东所有的成绩。
不同统计方式
北京的人数就更少了,400分以下的每10段人数都给了。为了方便起见,我们默认每个细分市场的平均人数。比如390-399号段有813人,我们认为每个段有81.3人。暂时先处理这个吧。
不同省市以最高分及以上表示最高分,但最低分的待遇不同,此处不做评价。
比如很多省市总分在100分以下,有的只有100分,100分以下不给分。在这里的最后处理中,我们把0分的人都删掉了,只统计1-100分的人,反正不影响整条曲线。
最后我们整理了数据表,每张表代表一个省市的文科科目,然后最上面一行数据对应的是总成绩,人数,累计人数,
数据处理
数据处理思路
这里为了Python的方便,使用熊猫读取的excel文件。
我们统计所有数据的目标是把分数变成0-100分。
因此
\[转换分数=\frac{当前分数-最低分数} {最高分数-最低分数} \乘以100\]
对于每个省份的分数,调整为[0,100]。此处使用了舍入,这会导致计算过程中的实际数据重叠。比如两个相邻的分数,一个是掉的,一个是进的,分数是统一的,会造成数据有噪声。这就是利用一维中值滤波来平滑数据。
以河南文科为例,直接得出归一化的结果,经过中值滤波后进行比较。
(图为测试时归一化到500分的图像,不影响理解)
各省市分数分布
我们之前已经整理过数据了,接下来就来做。
#整理数据,将各省市成绩归入一到一百分后的分配比例。
#介绍熊猫
进口熊猫作为pd
导入matplotlib
将matplotlib.pyplot作为plt导入
将scipy.signal作为ss导入
#设置中文字体
PLT . RC params[' font . sans-serif ']=[' sim hei ']#用于正常显示中文标签。
PLT . RC params[' axes . unicode _ MINUS ']=false #用于正常显示负号。
#设置图像尺寸和分辨率
PLT . RC params[' figure . figure size ']=(8.0,4.0) #设置figure_size的大小
PLT . RC params[' image . interpolation ']=' nearest ' #设置插值样式
PLT . RC params[' save fig . dpi ']=300 #图片像素
PLT . RC params[' figure . dpi ']=300 #分辨率
#将结果统一到[0,]范围
MAX_SCORE=100
MIN_SCORE=0
data_file='Data/data.xlsx '
RES _ file=' Data/RES-' str(MAX _ SCORE-MIN _ SCORE)'。xlsx '
#读取excel以获取所有表单的名称
excel_info=pd。ExcelFile(数据文件)
all_data={}
all_data_ratio={}
#获取表中的每个数据文件,并将数据归一化为0-500
对于范围内的索引(len(excel_info.sheet_names)):
#阅读所有表格
cur _ sheet name=excel _ info . sheet _ names[index]
df_sheet=pd.read_excel(数据文件,工作表名称=当前工作表名称)
#获取总分和每张表中对应分数的人数
scores=df _ sheet[df _ sheet . columns . values[0]]
nums=df _ sheet[df _ sheet . columns . values[1]]
#数据与每个分数相对应的人数表
行数=最大得分-最小得分1
trans_scores_nums=[0] *行
行数=长度(分数)
cur_max_score=scores[0]
cur_min_score=scores[rows - 1]
cur _ index=0;
对于分数中的s:
#计算转换后的分数并四舍五入。
trans _ SCORE=(int)(round((s-cur _ MIN _ SCORE)/(cur _ MAX _ SCORE-cur _ MIN _ SCORE)*(MAX _ SCORE-MIN _ SCORE)))
#将相应分数添加到计算分数的位置的人数
trans _ scores _ nums[trans _ score-1]=nums[cur _ index];
cur_index=1
#稍微处理数据,做简单的平滑,去掉最低分数据。
except0data=[0] *(第1行)
对于范围内的I(第1行):
except 0 data[I]=trans _ scores _ nums[I 1];
#去除噪声的中值滤波
smooth _ trans=ss . med filt(except 0 data,7)
#将数据转换成比例,这样更通用
总和=0
smooth_trans_ratio=[0] *(第1行)
对于范围内的I(第1行):
sum=smooth_trans[i]
对于范围内的I(第1行):
平滑转换比率[i]=平滑转换[i] /总和
all _ data[cur _ sheet name]=smooth _ trans
all _ data _ ratio[cur _ sheet name]=smooth _ trans _ ratio
Print('进行中{0}/{1},表名:{2})。format (index1,len (excel _ info.sheet _ names),cur _ sheet name))
# plt.plot(smooth_trans2)
#写入数据=pd。数据帧(所有数据)
# write_data.to_excel(res_file,sheet_name='res ')
写数据比率=pd。数据帧(所有数据比率)
write _ data _ ratio . to _ excel(RES _ file,sheet_name='ratio ')
打印('完成,保存文件:{0})。格式(res_file))
在这个程序中,我们主要是提取数据,计算成100分制,然后重新存储在excel表中,其中人数用各省市人数的比例代替,也方便查阅后续数据。
(因为我觉得plt画图图像不好看,这里我用MATLAB画图。)
%绘制原始数据,计算平均值和中位数。
%读取excel数据采集名称和列名称。
Data _ file=' Data/RES-100 . xlsx ';
res_ratio=xlsread(data_file,1,' B2:X501 ');
Res_name={ '河南艺术','河南科学','北京','上海','河北艺术','山东艺术','广东艺术','湖北艺术','湖南艺术','湖南艺术','四川艺术'
图()
继续
[rows,cols]=size(RES _ ratio);
avg=零(cols,1);
media=zeros(cols,1);
对于i=1:cols
%绘制百分比率图表。
plot(res_ratio(:I)* 100);
%计算平均值的中间值。
media _ l=0.5
media _ find _ flg=0;
对于j=1:行
avg(i)=avg(i) j*res_ratio(j,I);
%统计比率超过该数字的一半,则找到中值,并且不会更新。
if(media_find_flg==0)
if(media_l 0)
media_l=media_l - res_ratio(j,I);
其他
媒体(I)=j;
media _ find _ flg=1;
结束
结束
结束
结束
图例(RES _ name);
%创建xlabel
Xlabel({ '归一化到100分后的结果' });
%创建标题
标题({ '各省市归一化成绩分布比' });
%创建ylabel
YAbel ({ '单位成果分配比例' });
最终我们得到了这样一张图,细节很多,数据嘈杂,但数据的整体趋势大概是清晰的。吵吵闹闹的黄线是北京的,暂时不做过多分析。
各省市分数平均值与中值
我们这里的平均值是每个细分市场的人数乘以那个细分市场的比例,最后的结果是,
那么,这里的中位数就是简单的消除暴力。只要找到中值比所在的区间就可以了。代码没有经过太多处理,运行出结果就好了。
****
平均数
媒体
方式
河南文科
49.48792233
50
46
河南省科技厅
54.58292813
58
65
北京
68.04792125
70
70
上海
57.56537197
60
62
河北文科
51.23109382
五十二个
37
河北省科技厅
58.00918618
61
66
山东(省)
53.14176529
五十六岁
60
广东文科
47.7185653
四十九个
五十二个
广东科学部
48.64707915
51
55
湖北文科
48.50952865
四十九个
37
湖北省科技厅
51.9093088
55
64
湖南文科
60.26081026
62
七十二个
湖南科学部
59.09632919
62
65
四川文科
54.82215427
57
59
四川科学部
61.59698771
64
60
安徽文科
51.95829486
55
六十九
安徽省科技厅
54.62690506
57
五十六岁
广西文科
37.84799656
37
31
广西科技厅
41.46558284
41
33
贵州文科
63.48516406
65
64
贵州省科技厅
57.96584346
58
五十六岁
江西文科
53.35740184
55
71
江西省科技厅
56.85982591
61
62
数据简单分析
上一章我们给了一张图。matlab画出来的图颜色也差不多。建议下载原图观看,并给出分布图。
让我们分别用最特殊的数据画线,
最右边的黄色北京
最左边的紫色广西文科
最高浅蓝贵州文科
浅紫色湖北理科最一般
双峰的蓝色江西文科
其实这些形式都是有独特意义的,理论曲线只是分布太广,但由于种种原因,我们主要关注实际曲线。
右表示数据整体过大。
左边,整体很小。
最高值表示数据集中,
最低值表示数据均匀分布。
双峰是指数据严重碎片化(我瞎编的)。
一般来说,各省市的峰值分数在主页上也分为两部分。部分省市峰值分数在40分左右,主要有河南文科、河北文科、湖北文科、广西文科、广西理科。
剩下的大部分分数都集中在60分多一点,
Emmm,就这些。再多的分析也没用。毕竟北京NB
剩下的就是高考上线率了,但是各省本科分数线真的不一样。
我给的数据是,在历年高考分数线(批次线)网页上可以看到各省2020年的高考批次线。一般各省市都分一本二本专业,北京、上海、河北、山东、广东除外。
以后想办法做,估计不会做了。
高考大省与高考小省
先拿高考大省河南和河北来说,再对比上海和北京,看数据。
其实这里要找数据轴上最明显的特征线,具体数据自己分析。
但是现在让我们看看这些数据,
****
平均数
媒体
方式
河南文科
49.48792233
50
46
河南省科技厅
54.58292813
58
65
北京
68.04792125
70
70
上海
57.56537197
60
62
河北文科
51.23109382
五十二个
37
河北省科技厅
58.00918618
61
66
都是前面给的数据,我们已经画出来了。
北京的表现明显好于河北,河南和上海的数据一致,甚至在所有的图中,都是中间型。
总结
做久了也没用,只是手痒,然后很多事情做了,越来越多,后续还有很多事要做。
从这个数据来看,北京的成绩比国内其他省市好,可能和培养方式不同。
其实这种分数分布不一定是训练造成的,有些是各省考试情况不同造成的,所以数据仅供参考,北京NB
备注
我在Github上保存了我所有的数据。
https://github.com/SChen1024/GaoKao
有兴趣的话可以拿数据来分析,后面会把最后一点讲完。
关于2020年全国各省高考分数线分布的数据分析这篇文章到此为止。更多2020年全国各省高考分数线信息,请搜索我们之前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。