中物理第三单元数据分析与处理川教版(2019)信息技术(八年级下册)第2节统计分析数据1课堂导入同学们:上一节课我们学习了测试体重指数、肺活量、视力、50米跑、坐位体前屈、立定跳远、引体向上、仰卧起坐、长跑等项目,得到了很多的测试数据。怎么通过这些数据来判断我们是否健康呢?这就需要对这些数据进行统计分析。我们一起来看看吧!学习目标11.掌握Python中的基本算术运算符。2.了解什么是数组。3.掌握Python中列表类型的基本操作。4.掌握numpy模块中常用的数组操作。5.熟练使用numpy模块进行简单的数据统计与分析。2目录一、Python算术运算符二、数组三、统计函数Python算术运算符一一、Python算术运算符Python算术运算符一要学习利用Python进行数据处理,首先要学会在Python中进行计算。需要知道Python算术运算符。运算符描述实例+加1+2=3-减10-5=5*乘2*3=6/除10/20=0.5//取整除返回除法的商的整数部分,9//2=4%取余数返回除法的余数,9%2=1**幂又称次方、乘方,2**3=8Python算术运算符一在Python中进行数学计算时,和数学中的运算符优先级一致,同样也是先乘除后加减,同级运算符从左至右计算,可以使用“()”调整计算的优先级。Python中的算术运算符优先级由高到低的顺序排列如下表:练习请写出下列算式在Python中的运算结果。3+2*6=5*6**2=3*(7+8)=16%3=28//9=35/7=18+77%9=13*9//7=(88-19)/2+34=运算符描述**幂(最高优先级)*/%//乘、除、取余数、取整除+-加、减Python算术运算符一欢欢和他的同学们进行了学生体质健康测试,其中测试的身高、体重见下表。姓名性别身高/m体重/kg欢欢男1.6252乐乐女1.6045团团男1.6143圆圆女1.4632通过这些数据,可以计算每位同学的体重指数,体重指数(BMI)=体重(千克)/身高²(米²)。根据体重指数的计算结果和八年级学生体重指数等级表,可以判断出每位同学的体重等级是正常、低体重、超重还是肥胖。Python算术运算符一程序代码如下图:运行结果如下图:Python算术运算符一根据八年级学生体重指数等级表可以看出:欢欢、乐乐、团团的体重指数处于正常范围,而圆圆的体重指数只有15.012197410395949,属于低体重。所以圆圆还需要在健康饮食、平衡营养的基础上加强体育锻炼。等级正常低体重超重肥胖男生15.7~22.5≤15.622.6~25.2≥25.3女生15.3~22.2≤15.222.3~24.8≥24.9八年级学生体重指数等级表数组二二、数组数组二1.Python列表有序的可变的元素集合称为列表。在Python中,可以使用“=”运算符直接创建列表,列表用[]表示,数据之间使用逗号分隔。体重指数计算中的身高和体重数据就可以用这种方式生成,但要想对它们进行运算,就需要分别取出其中的某一个元素,再用之前学习的for循环语句来实现。因此,体重指数计算在Python中可以这样来做,程序代码如下图:这里的t[i]表示取t组数据中的第i个元素s[i]表示取s组数据中的第i个元素数组二程序运行结果如下图:提示:当要计算更多同学的体重指数时,可以把程序中的range(4)改为range(len(t)),这里的len(t)表示数组t包含数据元素的个数。数组二2.numpy数组运算在程序设计中,为了处理方便,把具有相同类型的若干数据按无序的形式组织起来,这些由若干元素构成的数据集合称为数组。数组的运算可以用numpy模块来实现。numpy是第三方程序模块,它是一个运行速度非常快的科学计算模块,在使用之前必须先进行安装。可以使用如下的命令安装numpy:pipinstallnumpynumpy模块的引入和七年级学过的turtle模块的引入方法一样。例如前面的体重指数计算,可以利用numpy模块创建数组来实现。数组二程序代码如下图:生成数组最简单的方式就是使用array()函数,该函数可以将输入的一组数据转换为数组。输入的这组数据可以是多种形式,例如数字、字母、汉字等,数据间使用逗号分隔,一个数组中的数据必须是同一种类型。数组二对一个数组使用数学运算,实际上就是对数组的每一个元素进行数学运算。例如:程序中的s**2,表示对s数组的每一个元素进行次方运算。对两个数组使用数学运算,实际上是对两个数组对应元素进行运算。例如:程序中的t/s**2,表示t数组中的每一个元素与s数组中对应的每个元素进行运算,程序运行结果如下图:对比三次计算体重指数的运行结果,可以发现,前两次是在Python环境中的运行结果,保留的小数位数多;第三次是在numpy模块中的运行结果,保留的小数位数少。两种运行环境对浮点数默认的精度不同,所以numpy模块保留的小数位数更少一些,这样可以节省内存,加快运算速度。数组二拓展练习:同学们可以试试运行下面的代码,看看效果。zeros()函数,可以创建数组元素全部为0的数组ones()函数,可以创建数组元素全部为1的数组arange()函数,可以创建等差数组,该函数和之前学过的range()函数类似运行结果数组二3.读写文本文件当数据量比较大时,将数据依次录入程序容易出错,且效率低。因此,用文件直接导入数据的方法更加准确、方便。numpy中可以直接导入文本文件。例如:下表是欢欢所在班级某一次分项目测试的成绩表。(1)建立基础数据表姓名性别体重评分肺活量50米跑立定跳远坐位体前屈800米跑1000米跑1分钟仰卧起坐引体向上附加分总分欢欢男1515208.57.2020092乐乐女15152077.21707.600团团男151214.86.66.8016040圆圆女1514.25177.610200802..女1510.21686.61908.500..女151215.2771606.800..女1515167.48190800..女151514.46.47.460900..男151520107.401707.20..女151514.446806.800..男1514.25198.57.4014.40100..男1515207.66.20200910..男151520109018060..女151515.27.67.21708.500..男91212.827.6012030数组二首先将上表中的数据复制到记事本或写字板,保存为文本文件“分项目成绩表”,如下图,用来存储数据,数据可以用空格、逗号等分隔符分隔。数组二(2)导入数据从文件导入可以用loadtxt()函数。它能从文本文件中读取数据,并以数组的形式返回。利用loadtxt()函数导入“分项目成绩表”文件来计算总分,程序代码如下图:提示:如果要对数组中的每一列进行求和可以用sum(0)来实现。sum(1)表示对数组中的每一行进行求和数组二程序运行结果如下图:(3)导出数据这样的结果排列方式不便于查看每位同学的总分,可以利用savetxt()函数将数组以指定的格式保存成文本文件。例如:savetxt(“b.txt”,b,fmt='%.2f')表示将数组b以两位小数的形式保存到b.txt文件中。数组二修改上面的程序,代码如下图:程序运行后得到的文本文件如右图:数组二4.组合数组(1)水平组合数组上图中只有总分,没有基础数据,仍不方便查看和对比,所以需要将计算出的总分和前面的基础数据进行合并。将两个文件中的数组合在一起,利用hstack()函数可以实现。hstack()函数可将两个或者多个数组水平组合起来形成一个新的数组,程序代码如下图:hstack()函数可将两个或者多个数组水平组合起来形成一个新的数组数组二运行结果如下图:从程序运行结果可以看出,数组a和数组b在水平方向首尾连接起来,形成了一个新的数组c,这就是数组的水平组合。数组二(2)垂直组合数组如果需要将两个或多个数组垂直组合起来形成一个新的数组可以利用vstack()函数。程序代码如下图:利用vstack()函数将两个或多个数组垂直组合起来形成一个新的数组数组二运行结果如下图:需要注意的是,所有参加水平组合的数组行数必须相同,所有参加垂直组合的数组列数必须相同,否则程序会报错。数组二在计算总分的例题中,将基础数据和计算的总分合并成一个文件可以按下图修改程序。数组二运行结果如下图:数组二练习:1.编写程序,利用文件导入的方式来计算本班学生体质健康水平测试各项目总分。2.编写程序将计算的总分以文本文件的方式保存。3.编写程序将基础数据和总分文件合并,形成完整的总分文件。统计函数三三、统计函数统计函数三除了前面学习过的sum()函数,numpy模块还内置了很多统计函数,这些函数的使用方法可参考sum()函数,根据实际需要进行选择和使用。函数说明Sum()求和Mean()求平均值Max()取最大值Min()取最小值统计函数三如果要计算“分项目测试成绩表”中各个项目的平均分,程序代码如下图:mean(0)表示对数组中的每一列求平均值统计函数三代码运行结果如下图:统计函数三下表是“国家学生体质健康标准”单项指标与权重(八年级)。我们将刚才计算的结果与这个标准进行对比,请同学们认真观察,看看能从中发现些什么呢?根据学生的回答,老师进行归纳总结:对于这些不够理想的指标,我们需要进行有针对性的锻炼。例如,长跑差说明耐力素质差,应强化耐力训练;引体向上差说明上肢力量差,应强化力量训练。争取取得进步,从而不断提高自身的体质健康水平。项目体重指数(BMl)肺活量50米跑立定跳远坐位体前屈800米跑(女)1000米跑(男)1分钟仰卧起坐(女)引体向上附加分权重/%15152010102020101020统计函数三练习:1.编写程序计算本班学生健康水平测试各项目的平均分。2.建立本班学生立定跳远项目成绩表,编写程序找出本班立定跳远项目跳出的最远距离。当我们实现了数据分析和处理之后,就该考虑将我们处理好的数据生成统计图表,便于进行更直观的可视化分析,从而给我们提供一些更科学、更精准的建议。下节课我们将要学习如何绘制统计图,请同学们提前做好预习。3课堂小结统计分析数据Python算术运算符1.+(加)2.-(减)3.*(乘)4./(除)5.//(取整除)6.%(取余数)7.**(幂)数组1.数组的概念:由若干元素构成的数据集合。2.数组的运算:numpy模块3.读写文本文件。4.组合数组。统计函数1.sum()——求和2.mean()——求平均值3.max()——取最大值4.min()——取最小值THANKS“”