当前位置:文档之家› 使用Python进行科学计算

使用Python进行科学计算


科学计算相关开发包
openCV
著名开源图像处理、计算机视觉函数库的
Python 版本。 matplotlib
Python 2D绘图领域使用最为广泛的开发包。 能使用户很轻松地将数据图形化。 其子模块pylab具有与matlab相似的绘图命令 及相似的参数。
一个简单的例子 对一张图片作如下处理:
科学计算相关开发包
sciPy
一个基于numpy的专为科学计算与工程设计
的开发包。
目前,它包含的主要子模块有:
聚类算法 快速傅里叶变换 信号处理 最优化,求根

积分、常微分方程求解 插值、拟合 线性代数 图像处理
稀疏矩阵 空间数据结构及算法 正交距离回归
Python 是一种优雅、清晰、简单,极具可读性的高 级计算机程序设计语言。
Python是一个极具包容性和开放性的
框架
功能完备,易用的标准库
活跃、开放的社区
丰富、多样的第三方开发包
2. Python简介
Python不同于传统严格语法的计算机语言(C,
C++,Java等),它的语法较为灵活,更接近
# 赋值
# 访问
运算符
数学运算符: +, -, *, /, %
** 乘方
print 2**0.5 条件运算符: ==, !=, >,>=, <, <= is, is not, in print 3 in [1, 2, 3] 逻辑运算符: and, or, not
流程控制
分支控制:
冒号表示复 合语句开始
科学计算相关开发包
Numpy
一个基于Python的数值计算包
基础数据类型为多维数组
主要功能包括:
数组创建(eye, ones, zeros …)

数组操作 (reshape, resize, split …) 数组元素检索(all, any, nonzero, where …) 基本数值计算函数 (sin, sum, sqrt …) 基本线性代数函数(dot, transpose, inv …) 基本统计学函数(cov, mean, var …)
L = sum([n for n in X if n % 2]) 循环对象, 迭代器, 循环器等概念
函数
a=3
b=4
def square_sum(x, y): #函数定义
c = x** 2 + y ** 2
d = c ** 0.5 return c, d #允许多返回值
z, w = square_sum(a, b) #函数调用 print z, w
使用Python进行科学计算
陈彬
1. 为什么选Python
2. Python简介 3. Python与科学计算
1. 为什么选Python
科学计算的基本任务:有效性、高效性 选择何种计算机语言进行科学计算有效性 验证工作?
易用性
可读性 扩展性
1. 为什么选Python
Python: 入门容易,学习曲线平滑,且 备受欢迎
于自然语言。
Python将许多机器层面上的细节加以隐藏,
交给编译器处理,着重凸显逻辑层ython的变量无需声明
a = 3.14
print a, type(a)
基本数据类型: a = 10 a = 3.14 a = True a = ‘Hello’ a = 1 + 2j
if ‘H’ in ‘Hello’:
print ‘Y’
else:
print ‘N’
强制缩进,表示 层次关系 Just for beautiful
流程控制
循环控制:
sum = 0 for i in range(1, 101): sum += i print sum #include <stdio.h> int main() { int sum = 0 for (int i = 0; i <= 100; i ++) sum , i = 0, 100 { sum += i;
# int # float # Boolean # string # complex
变量与数据类型
复杂数据类型
d1 = [1, True, ‘hello’] # list
d2 = (2, 3.14, ‘world’) # tuple
d1[1] = 1.3
print d2[0] print d1[0 : 3 : 2] 字典(dict), 集合(set)等
Python的哲学思想(by Tim Peters) Beautiful is better than ugly. (优雅胜于丑陋) Explicit is better than implicit. (明了胜于晦涩) Simple is better than complex. (简洁胜于复杂) Complex is better than complicated. (复杂胜于繁琐) Readability counts. (可读性极具价值)
/Tentative_NumPy_Tutorial(英文) /lsjseu/article/details /20359201?utm_source=tuicool (翻译)
3. Scipy Tutorial
/doc/scipy/reference/tutorial/
while i > 0:
sum += i i=i-1 print sum }
}
printf(“%d”, sum);
流程控制
更像一个Pythonista 的循环
L = [n ** 2 for n in range(10)] X = [1, 2, 3, 11, 12, 13, 22, 25, 26]
3. Python与科学计算
安装与环境配置 集成开发环境
Python自带开发环境 IDLE :命令行 JAVA程序员: Eclipse + pydev C/C++程序员 visual studio + PTVS http://microsoft.github.io/PTVS/
3. Python与科学计算
安装与环境配置 Python 2.7 或 Python 3.4 /downloads
第三方开发包
numpy,scipy, matplotlib,OpenCV
加州大学欧文分校(资源汇编)
/~gohlke/pythonlibs/
高斯滤波、锐化、求直方图、求图像频谱
一个简单的例子
学习资料推荐 1. The Python Tutorial
https:///2/tutorial(英文)
/python_278/tutorial/(翻译)
2. Tentative Numpy Tutorial
4. Matplotlib
/users/index.html Tutorial
bri.fr/perso/nrougier/teaching/matplotlib/
http://liam0205.me/2014/09/11/matplotlib-tutorial-zh-cn/
相关主题