Python科学计算与数据处理  01MGX028H

学期:2017—2018学年(春)第二学期 | 课程属性:公共选修课 | 任课教师:张敏洪
授课时间: 星期四, 第7、8节
授课地点: L-145(机房)
授课周次: 2、3、4、5、6、7、8、9、10、11、12
授课时间: 星期二, 第7、8节
授课地点: L-145(机房)
授课周次: 2、3、4、5、6、7、8、9、10、11、12
授课时间: 星期二, 第7、8节
授课地点: L-145(机房)
授课周次: 2、3、4、5、6、7、8、9、10、11、12
授课时间: 星期四, 第7、8节
授课地点: L-145(机房)
授课周次: 2、3、4、5、6、7、8、9、10、11、12
课程编号: 01MGX028H 课时: 40 学分: 1.0
课程属性: 公共选修课 主讲教师:张敏洪
英文名称: Python for Scientific Computation and Data Analysis

教学目的、要求

Python是一种面向对象的、动态的程序设计语言。具有非常简洁而清晰的语法,适合于完成各种高层任务。它既可以用来快速开发程序脚本,也可以用来开发大规模的软件。
  随着NumPy, SciPy, Sympy,Matplotlib, Pandas,Enthought librarys等众多程序库的开发,Python越来越适合于做科学计算、绘制高质量的2D和3D图像。和科学计算领域最流行的商业软件Matlab相比,Python是一门通用的程序设计语言,比Matlab所采用的脚本语言的应用范围更广泛,有更多的程序库的支持,并且是免费、开源的。虽然Matlab中的许多高级功能和toolbox目前还是无法替代的,不过在日常的科研开发之中仍然有很多的工作是可以用Python代劳的。
  通过本课程的学习为同学今后从事科研工作提供帮助。本课程注重数值计算实践,用Python实现高等数学、线性代数、统计与优化等数学计算。

预修课程

高等数学、线性代数、统计基础、运筹学基础、计算机基础

教 材

下边三本教材部分综合。
《Numpy Beginner’s Guide》 Ivan Idris, Packt Publishing
《Python科学计算》 张若愚 清华大学出版社
《Python for Data Analysis》 Wes McKinney, O’Reily Media,Inc

主要内容

本课程将介绍如何用Python进行科学计算与数据处理,除了介绍数值、符号计算之外,我们还将介绍如何制作交互式的2D、3D图像;如何对数据进行处理和加工。
1、	Python简介(6学时)
    Python语言精要简介
2、	Ipython、Pylab -一种交互式计算和开发环境(2学时)
IPython 是 Python 的一个增强版本。它在下列方面有所增强:命名输入输出、使用系统命令(shell commands)、排错(debug)能力。
Pylab 是 matplotlib 面向对象绘图库的一个接口。它的语法和 Matlab 十分相近,可以像 Matlab 或者 Mathematica 那样以交互的方式绘图。
3、	NumPy-快速处理数据(8学时)
Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。
4、	SciPy-数值计算(8学时)
Scipy包包含致力于科学计算中常见问题的各个工具箱。它的不同子模块相应于不同的应用。像插值,积分,优化,图像处理,特殊函数等等。
5、	Sympy-符号运算(4学时)
SymPy是一个符号数学Python库。它的目标是成为一个全功能的计算机代数系统,同时保持代码的精简而易于理解和扩展。
6、	Matplotlib-绘制图表(4学时)
Matplotlib 可能是 Python 2D- 绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。
7、	Pandas-数据分析(8学时)
Pandas 是为了处理金融数据而开发的,它包含了高级的数据结构和精巧的工具,使得Python在处理数据时更加快速简单。
Pandas 构建于NumPy之上,使得以NumPy为中心得应用很容易使用

参考文献

1、《Numpy Beginner’s Guide》 Ivan Idris, Packt Publishing
2、《Python科学计算》 张若愚 清华大学出版社
3、《Python for Data Analysis》 Wes McKinney, O’Reily Media,Inc
4、《Python for Finance》Yves Hilpisch,O’Reily Media,Inc
5、《Machine Learning Python》Michael Bowles, WILEY,Inc
6、《Learning Python》Lutz.M. O’Reily Media,Inc