—— 为什么要学习环境数据分析方法呢?
环境问题的研究已经进入了大数据时代,如何从众多繁杂的数据中去伪存真、发现问题、寻找真相、得到答案,需要你学习本门课程。
—— 环境数据分析方法的主题是关于什么?
统计学是环境数据分析的灵魂,编程语言是进行数据分析的工具,环境科学是数据分析的目标。—— 学习环境数据分析方法可以获得什么?
掌握获取、清洗、整理、描述、可视化表达数据的能力;初步具备统计建模方法、探究环境复杂因素关系、揭示环境内在规律、预测环境变化趋势的能力;运用专业知识在数据分析和统计建模中提出新问题和确定量化目标的能力。
—— 环境数据分析方法有什么特色和亮点?
以全球降雨监测数据为分析对象,了解和掌握数据分析方法的环境应用;以Python为数据分析平台,踏入环境科学大数据分析的门槛;奠定跨界数据分析师的基础,拓展今后专业技术技能空间。
![]()
Python程序设计课程概述:
—— 为什么要学习计算机编程?
—— 因为编程是件很有趣的事儿,能启迪思维,还有诗和远方...
Python [paɪθən] 语言,由Guido van Rossum大牛在1990年发明,它是当今世界最受欢迎的计算机编程语言,也是一门对大多数人“学了能用、学了有用、学会能久用”的计算生态语言。
本课程是一门体现大学水平的Python 语言入门课程,采用“理解和运用计算生态”为教学理念,面向Python零基础学习者,不要求学习者有任何编程基础。本课程将帮助大家快速、轻松且系统的学习Python语言,高效编写程序,掌握利用计算机解决问题的基本方法和过程。
本课程主要讲解“Python基础语法”全体系,包括3个教学部分,共9周内容,教学安排如下:
· 第一部分,共2周:Python快速入门,初识Python语言,讲解基本的程序设计方法、熟悉Python语法元素。
· 第二部分,共5周:Python基础语法,深入Python语言,讲解Python基础语法全貌、实践计算问题求解。
· 第三部分,共2周:Python编程思维,运用Python语言,讲解计算生态、程序设计方法学等内容、显著提高编程思维。
本课程共讲解16个经典案例,提供50道以上编程题和100道以上单选题作为课后练习(可选,由学习者可自主完成),帮助大家熟练Python语言编程能力。本课程需要一个9周的学习计划表,完成后将掌握一门可用20年以上的编程语言,学习里程碑如下:
· 第2周结束:将学会编写010行左右Python程序,有输入、有输出、带文字、有图形;
· 第7周结束,将熟练编写050行左右Python程序,正式成为程序员(业余)一族;
· 第9周结束,将能够编写100行以上Python程序,拿个证书同时开始像专业程序员一样思考。
(一)本课程总成绩为100分制。平时作业50分,考勤或课堂表现10分,期末论文40分。
(二)需要提交的平时作业共5次,每次满分10分,共计50分。
(三)期末论文成绩的共计40分,由课程老师与学习小组给定。
(四)考勤或课堂表现成绩10分。
线性代数
概率与数理统计
环境科学基础,最好环境化学基础
第一章 环境数据分析概述(1周)
第一节:环境数据、数据分析与数据科学
第二节:数据分析韦恩图(数学、计算机编程、专业知识)
第三节:数据的类型(结构/非结构、定性/定量)
第四节:数据分析的5个步骤(问题、获取、探索、建模、结论)
第五节:数据分析数学基础(统计学、线性代数、GIS)
第二章 Python基本介绍(2周)
第一节:Python安装(Anaconda)
第二节:Python基础编程(变量、语法、函数、文件I/O)
第三节:数学计算模块numpy
第四节:数据管理模块pandas
第五节:可视表达模块matplotlib
第六节:专业统计模块statsmodels
第三章 环境数据的获取、清洗和整理(1周)
第一节:数据的获取(试验、原位观测、数据库、网络、物联网)
第二节:数据的清洗(数据的拆分、合并、剔除、筛选、格式转换)
第三节:数据的整理(基于专业知识的问题、判断、因素、模型)
第四章 数据的描述性统计(3周)
第一节:数据常见统计量(位置、尺度、分位数、置信区间)
第二节:数据的图形化表达(boxplot, hist, P-P plot, scatter, etc.)
第三节:数据的分布特征(skewness, kurtness, non-parameter test )
第四节:数据离群值的识别、检验及剔除
第五章 统计检验与方差分析(2周)
第一节:简单统计检验(µ检验、t检验、x2检验、F检验)
第二节:单因素方差分析
第三节:双因素方差分析
第四节:系统分组方差分析
第五节:正交实验设计初步
第五章 一元回归分析(2周)
第一节:一元线性回归模型
第二节:参数的最小二乘法估计
第三节:估计量的分布与t检验
第四节:拟合优度与F检验
第五节:一元回归预测
第六节:非线性回归分析(可转换为线性化和非线性回归)
第六章 多元回归分析(2-3周)
第一节:多元模型基本假设与最小二乘法估计
第二节:回归系数与回归方程的显著性检验
第三节:多重共线性检验及处理
第四节:逐步回归分析
第五节:多项式回归分析
第六节:分类与logistic回归(视课程时间而定)
以下是Python程序设计课程的教学大纲:
【第0周】课程导学
0.1 课程基本情况
0.2 全课程内容导学 (必看: 课程内容渐进式体验)
【第1周】Python基本语法元素
第1周课程导学
1.1 程序设计基本方法
1.2 Python开发环境配置
1.3 实例1: 温度转换
1.4 Python程序语法元素分析
第1周作业及学习资料
【第2周】Python基本图形绘制
第2周课程导学
2.1 深入理解Python语言
2.2 实例2: Python蟒蛇绘制
2.3 模块1: turtle库的使用
2.4 turtle程序语法元素分析
第2周作业及学习资料
【第3周】基本数据类型
第3周课程导学
3.1 数字类型及操作
3.2 实例3: 天天向上的力量
3.3 字符串类型及操作
3.4 模块2: time库的使用
3.5 实例4: 文本进度条
第3周作业及学习资料
【第4周】程序的控制结构
第4周课程导学
4.1 程序的分支结构
4.2 实例5: 身体质量指数BMI
4.3 程序的循环结构
4.4 模块3: random库的使用
4.5 实例6: 圆周率的计算
第4周作业及学习资料
【第5周】函数和代码复用
第5周课程导学
5.1 函数的定义与使用
5.2 实例7: 七段数码管绘制
5.3 代码复用与函数递归
5.4 模块4: PyInstaller库的使用
5.5 实例8: 科赫雪花小包裹
第5周作业及学习资料
【第6周】组合数据类型
第6周课程导学
6.1 集合类型及操作
6.2 序列类型及操作
6.3 实例9: 基本统计值计算
6.4 字典类型及操作
6.5 模块5: jieba库的使用
6.6 实例10: 文本词频统计
第6周作业及学习资料
【第7周】文件和数据格式化
第7周课程导学
7.1 文件的使用
7.2 实例11: 自动轨迹绘制
7.3 一维数据的格式化和处理
7.4 二维数据的格式化和处理
7.5 模块6: wordcloud库的使用
7.6 实例12: 政府工作报告词云
第7周作业及学习资料
【第8周】程序设计方法学
第8周课程导学
8.1 实例13: 体育竞技分析
8.2 Python程序设计思维
8.3 Python第三方库安装
8.4 模块7: os库的使用
8.5 实例14: 第三方库安装脚本
第8周作业及学习资料
《环境数据分析方法》教材
中文版:Python统计分析,人民邮电出版社,2018-12第一次出版,作者托马斯·哈斯尔万特著,李锐译
English Version:An Introduction to Statistics with Python With Applications in the Life Sciences, eBook, Thomas Haslwanter, Springer
主要参考资料
《环境数据分析》,科学出版社,2018-08第一次出版,作者 庄树林
《环境与生态统计》,高等教育出版社,2011-07第一次出版, Song S. Qian,曾思育译。
《环境统计学与Matlab应用》,高等教育出版社,2010-01第一次出版,聂庆华 Keith C. Clarke编著
Python集成开发环境(IDE)
[1] Anaconda: https://www.continuum.io/
Q1:Python语言、C语言、Java语言、VB语言……到底哪种适合作为入门编程语言呢?
A1:Python是最好的程序设计入门语言、也是最先进的程序设计语言。
如果只想学一门程序设计语言,请学Python;如果想学一门最先进的程序设计语言,请学Python。
Q2:Python 2.x 和 Python 3.x,该学习哪个版本?
A2:Python 3.x,本课程及嵩老师所有Python课程只讲授这个版本。
与传统软件升级不同,3.x版本与2.x版本并不兼容,3.x版本2008年发布,至今,所有Python主流功能库都可以稳定且更高效地运行在Python 3.x版本下,专业Python程序员都已经使用Python 3.x版本,无可争议。
Q3:Python语言是跨平台的吗?
A3:Python语言所编写程序可以无需修改在Windows、Linux、UNIX、Mac等操作系统上使用。(严谨些:如果Python程序所调用的库是平台无关的,则可以跨平台。)
Q4:Python语言是面向对象语言吗?
A4:面向对象是程序设计方法的一种,Python语言并不局限于此。你可以学习面向对象程序设计方法,并利用Python语言实现,也可以仅仅用面向过程的基本方式,甚至,你可以没有任何风格的写几行代码,Python语言都是支持的。它就是这么任性!