Python中文网

这本Python科学计算(附CD-ROM光盘1张) [Scientific Computing With Python]图书,是2012-01-01月由清华大学出版社所出版的,著作者信息: 张若愚 著,本版是第1次印刷, ISBN:9787302273608,品牌:清华大学, 这本书的包装是16开平装,所用纸张为胶版纸,全书页数621,字数有94万1000字, 是本值得推荐的Python软件开发图书。

此书内容摘要

《Python科学计算》介绍如何用python开发科学计算的应用程序,除了介绍数值计算之外,还着重介绍如何制作交互式的2d、3d图像,如何设计精巧的程序界面,如何与c语言编写的高速计算程序结合,如何编写声音、图像处理算法等内容。书中涉及的python扩展库包括numpy、scipy、sympy、matplotlib、traits、traitsui、chaco、tvtk、mayavi、vpython、opencv等,涉及的应用领域包括数值运算、符号运算、二维图表、三维数据可视化、三维动画演示、图像处理以及界面设计等。书中以大量实例引导读者逐步深入学习,每个实例程序都有详尽的解释,并都能在《Python科学计算》推荐的运行环境中正常运行。此外,《Python科学计算》附有大量的图表和插图,力求减少长篇的理论介绍和公式推导,以便读者通过实例和数据学习并掌握理论知识。

关于此书作者

张若愚,毕业于华中理工大学(现华中科技大学)通信工程专业,2004年获日本姬路工业大学(现兵库县立大学)硕士学位。毕业后于日本神户制钢综合研究所从事研究开发工作至今,研究方向为:嵌入式DSP信号处理系统开发,嵌入式MCU控制系统开发,工业控制软件开发,信号处理、数据处理以及生产系统的计算机模拟。在工作中他积极采用Python作为主要编程语言,在数据处理、信号分析、工业控制、算法模拟等领域取得了较好的研究成果。已完成的研究课题有:嵌入式声音分离系统、车载音响设备、超声波探伤系统、压缩机系统的数字模拟等。

编辑们的推荐

《Python科学计算》主要特色:如果您有一定的Python编程经验,经常需要对数值数据做一些处理、分析、可视化的工作,那么《Python科学计算》的内容十分适合您阅读。

如果您是程序员,即使工作与科学计算无关,《Python科学计算》所介绍的各种扩展库也将能丰富您的工具箱,为您的工作提供新的解决方案。

如果您是科研人员,即使对Python或编程并不十分了解,但只要花一点时间学习Python语言以及《Python科学计算》介绍的内容,就能让您的工作效率大幅提高。

附赠光盘中包含书中用到的Python扩展程序、学习《Python科学计算》时用到的工具软件以及书中所有实例的源程序。

历时三年,精心编写。Enthought公司CEO Eric Jones作序推荐,《Python科学计算》所提供的一站式服务,能够指导读者从最初的入门直到创建一个漂亮的、全功能的分析与模拟应用程序。

NumPy——快速处理数据,SymPy——符号运算好帮手,Traits——为Python添加类型定义,Chaco——交互式图表,Mayavi——更方便的可视化,OpenCV——图像处理和计算机视觉,数字信号、滤波器、频域处理,用C语言提高计算效率,SciPy——数值计算库,matplotlib——绘制精美的图表,TraitsUI——轻松制作用户界面,TVTK——数据的三维可视化,VPython——制作3D演示动画,声音与视频数据处理,动画模拟、分形几何。

《Python科学计算》读者对象:《Python科学计算》适合科研人员阅读,但书中介绍的NumPy数据处理、matpltlib绘图、TraltsUI界面应用程序开发、各种格式的数据文件的处理以及用C语言编写扩展等内容,并非局限于科学计算领域,也适合一般的Python开发人员阅读。

Python科学计算(附CD-ROM光盘1张) [Scientific Computing With Python]图书的目录

第1章 软件包的安装和介绍
1.1 python简介
1.2 安装软件包
1.2.1 python(x,y)
1.2.2 enthought python distribution(epd)
1.3 方便的开发工具
1.3.1 ipython
1.3.2 spyder
1.3.3 wing ide
1.4 函数库介绍
1.4.1 数值计算库
1.4.2 符号计算库
1.4.3 界面设计
1.4.4 绘图与可视化
1.4.5 图像处理和计算机视觉

第2章 numpy--快速处理数据
2.1 ndarray对象
2.1.1 创建数组
2.1.2 存取元素
2.1.3 多维数组
2.1.4 结构数组
2.1.5 内存结构
2.2 ufunc运算
2.2.1 四则运算
2.2.2 比较和布尔运算
2.2.3 自定义ufunc函数
2.2.4 广播
2.2.5 ufunc函数的方法
2.3 多维数组的下标存取
2.3.1 下标对象
2.3.2 整数数组作为下标
2.3.3 一个复杂的例子
2.3.4 布尔数组作为下标
2.4 庞大的函数库
2.4.1 求和、平均值、方差
2.4.2 最值和排序
2.4.3 多项式函数
2.4.4 分段函数
2.4.5 统计函数
2.5 线性代数
2.5.1 各种乘积运算
2.5.2 解线性方程组
2.6 掩码数组
2.7 文件存取
2.8 内存映射数组

第3章 scipy--数值计算库
3.1 常数和特殊函数
3.2 优化--optimize
3.2.1 最小二乘拟合
3.2.2 函数最小值
3.2.3 非线性方程组求解
3.3 插值--interpolate
3.3.1 b样条曲线插值
3.3.2 外推和spline拟合
3.3.3 二维插值
3.4 数值积分--integrate
3.4.1 球的体积
3.4.2 解常微分方程组
3.5 信号处理--signal
3.5.1 中值滤波
3.5.2 滤波器设计
3.6 图像处理--ndimage
3.6.1 膨胀和腐蚀
3.6.2 hit和miss
3.7 统计--stats
3.7.1 连续和离散概率分布
3.7.2 二项、泊松、伽玛分布
3.8 嵌入c语言程序--weave

第4章 sympy--符号运算好帮手
4.1 从例子开始
4.1.1 封面上的经典公式
4.1.2 球体体积
4.2 数学表达式
4.2.1 符号
4.2.2 数值
4.2.3 运算符和函数
4.3 符号运算
4.3.1 表达式变换和化简
4.3.2 方程
4.3.3 微分
4.3.4 微分方程
4.3.5 积分
4.4 其他功能
4.4.1 平面几何
4.4.2 绘图

第5章 matplotlib--绘制精美的图表
5.1 快速绘图
5.1.1 使用pyplot模块绘图
5.1.2 以面向对象方式绘图
5.1.3 配置属性
5.1.4 绘制多个子图
5.1.5 配置文件
5.1.6 在图表中显示中文
5.2 artist对象
5.2.1 artist对象的属性
5.2.2 figure容器
5.2.3 axes容器
5.2.4 axis容器
5.2.5 artist对象的关系
5.3 坐标变换和注释
5.3.1 4种坐标系
5.3.2 坐标变换的步骤
5.3.3 制作阴影效果
5.3.4 添加注释
5.4 绘图函数简介
5.4.1 对数坐标图
5.4.2 极坐标图
5.4.3 柱状图
5.4.4 散列图
5.4.5 图像
5.4.6 等值线图
5.4.7 三维绘图

第6章 traits--为python添加类型定义
6.1 开发背景
6.2 trait属性的功能
6.3 trait类型对象
6.4 trait的元数据
6.5 预定义的trait类型
6.6 property属性
6.7 trait属性监听
6.8 event和button属性
6.9 trait属性的从属关系
6.10 动态添加trait属性
6.11 创建自己的trait类型
6.11.1 从traittype继承
6.11.2 使用trait()
6.11.3 定义traithandler类

第7章 traitsui--轻松制作用户界面
7.1 默认界面
7.2 用view定义界面
7.2.1 外部视图和内部视图
7.2.2 多模型视图
7.2.3 group对象
7.2.4 配置视图
7.3 用handler控制界面和模型
7.3.1 用handler处理事件
7.3.2 controller和uiinfo对象
7.3.3 响应trait属性的事件
7.4 属性编辑器
7.4.1 编辑器演示程序
7.4.2 对象编辑器
7.4.3 字符串列表编辑器
7.4.4 对象列表编辑器
7.5 菜单、工具条和状态栏
7.6 设计自己的编辑器
7.6.1 trait编辑器的工作原理
7.6.2 制作matplotlib的编辑器
7.6.3 csv数据绘图工具

第8章 chaco--交互式图表
8.1 面向脚本绘图
8.2 面向应用绘图
8.2.1 多条曲线
8.2.2 plot对象的结构
8.2.3 编辑绘图属性
8.2.4 容器(container)
8.3 添加交互工具
8.3.1 平移和缩放
8.3.2 选取范围
8.3.3 选取数据点
8.3.4 套索工具
8.4 二次开发
8.4.1 用kiva库在数组上绘图
8.4.2 enable库的组件
8.4.3 设计圆形选择工具
8.4.4 制作动画演示

第9章 tvtk--数据的三维可视化
9.1 流水线(pipeline)
9.1.1 显示圆锥
9.1.2 用ivtk观察流水线
9.2 数据集(dataset)
9.2.1 imagedata
9.2.2 rectilineargrid
9.2.3 structuredgrid
9.2.4 polydata
9.3 可视化实例
9.3.1 切面
9.3.2 等值面
9.3.3 流线
9.4 tvtk的改进
9.4.1 tvtk的基本用法
9.4.2 trait属性
9.4.3 序列化(pickling)
9.4.4 集合迭代
9.4.5 数组操作

第10章 mayavi--更方便的可视化
10.1 用mlab快速绘图
10.1.1 点和线
10.1.2 mayavi的流水线
10.1.3 二维图像的可视化
10.1.4 网格面
10.1.5 修改和控制流水线
10.1.6 标量场
10.1.7 矢量场
10.2 mayavi和tvtk之间的关系
10.2.1 显示tvtk流水线
10.2.2 两条流水线之间的关系
10.3 mayavi应用程序
10.3.1 操作流水线
10.3.2 命令行和对象浏览器
10.4 将mayavi嵌入到界面中

第11章 vpython--制作3d演示动画
11.1 场景、物体和照相机
11.1.1 控制场景窗口
11.1.2 控制照相机
11.1.3 模型的属性
11.1.4 三维模型
11.2 制作动画演示
11.2.1 简单动画
11.2.2 盒子中反弹的球
11.3 与场景交互
11.3.1 响应键盘事件
11.3.2 响应鼠标事件
11.4 用界面控制场景
11.5 创建复杂模型
11.5.1 faces()的用法
11.5.2 读入模型数据

第12章 opencv--图像处理和计算机视觉
12.1 存储图像数据的mat对象
12.1.1 mat对象和numpy数组
12.1.2 像素点类型
12.1.3 其他数据类型
12.1.4 vector类型
12.1.5 在图像上绘图
12.2 图像处理
12.2.1 二维卷积
12.2.2 形态学运算
12.2.3 填充--floodfill
12.2.4 去瑕疵--inpaint
12.3 图像变换
12.3.1 几何变换
12.3.2 重映射--remap
12.3.3 直方图统计
12.3.4 二维离散傅立叶变换
12.4 图像识别
12.4.1 用霍夫变换检测直线和圆
12.4.2 图像分割
12.4.3 用surf进行特征匹配

第13章 数据和文件
13.1 声音的输入输出
13.1.1 读写wav文件
13.1.2 用pyaudio播放和录音
13.2 视频的输入输出
13.2.1 读写视频文件
13.2.2 安装视频编码
13.3 读写hdf5文件
13.4 读写excel文件
13.4.1 写excel文件
13.4.2 读excel文件

第14章 数字信号系统
14.1 fir和iir滤波器
14.2 fir滤波器设计
14.2.1 用firwin()设计滤波器
14.2.2 用remez()设计滤波器
14.2.3 滤波器的级联
14.3 iir滤波器设计
14.3.1 巴特沃斯低通滤波器
14.3.2 双线性变换
14.3.3 滤波器的频带转换
14.4 数字滤波器的频率响应
14.5 二次均衡滤波器设计工具
14.6 零相位滤波器
14.7 重取样

第15章 频域信号处理
15.1 fft演示程序
15.1.1 fft知识复习
15.1.2 合成时域信号
15.1.3 三角波fft演示程序
15.2 观察信号的频谱
15.2.1 窗函数
15.2.2 频谱平均
15.2.3 谱图
15.3 卷积运算
15.3.1 快速卷积
15.3.2 分段运算
15.4 信号处理
15.4.1 基本框架
15.4.2 频域滤波器
15.4.3 频率变调处理
15.4.4 用谱图差减法降噪
15.5 hilbert变换

第16章 用c语言提高计算效率
16.1 用ctypes调用dll库
16.2 用weave嵌入c++程序
16.2.1 weave的工作原理
16.2.2 处理numpy数组
16.2.3 使用blitz()提速
16.2.4 扩展模块
16.3 用cython将python编译成c
16.3.1 编译cython程序
16.3.2 提高计算效率
16.3.3 快速访问numpy数组
16.4 用swig创建扩展模块
16.4.1 swig的调用方法和实例
16.4.2 swig基础
16.4.3 swig处理numpy数组

第17章 自适应滤波器
17.1 自适应滤波器简介
17.1.1 系统识别
17.1.2 信号预测
17.1.3 信号均衡
17.2 nlms计算公式
17.3 用numpy实现nlms算法
17.3.1 系统辨识模拟
17.3.2 信号均衡模拟
17.3.3 卷积逆运算
17.4 用c语言加速nlms运算
17.4.1 用swig编写扩展模块
17.4.2 用weave嵌入c++程序

第18章 单摆和双摆模拟
18.1 单摆模拟
18.1.1 小角度时的摆动周期
18.1.2 大角度时的摆动周期
18.2 双摆模拟
18.2.1 公式推导
18.2.2 微分方程的数值解
18.2.3 动画演示

第19章 分形几何
19.1 mandelbrot集合
19.1.1 使用numpy加速计算
19.1.2 使用weave加速计算
19.1.3 连续的逃逸时间
19.1.4 mandelbrot演示程序
19.2 迭代函数系统(ifs)
19.2.1 二维仿射变换
19.2.2 迭代函数系统设计器
19.3 l-system分形
19.4 分形山脉
19.4.1 一维中点移位法
19.4.2 二维中点移位法
19.4.3 菱形方形算法

部分内容试读

前 言
Python是一种面向对象的、动态的程序设计语言,具有非常简洁而清晰的语法,既可以用于快速开发程序脚本,也可以用于开发大规模的软件,特别适合于完成各种高层任务。
随着NumPy、SciPy、matplotlib、ETS①等众多程序库的开发,Python越来越适合于做科学计算。与科学计算领域最流行的商业软件MATLAB相比,Python是一门真正的通用程序设计语言,比MATLAB所采用的脚本语言的应用范围更广泛,有更多程序库的支持,适用于Windows和Linux等多种平台,完全免费并且开放源码。虽然MATLAB中的某些高级功能目前还无法替代,但是对于基础性、前瞻性的科研工作和应用系统的开发,完全可以用Python来完成。
本书介绍如何用Python开发科学计算的应用程序,除了介绍数值计算之外,还着重介绍了如何制作交互式二维、三维图像,如何设计精巧的程序界面,如何与C语言编写的高速计算程序结合,如何编写声音、图像处理算法等内容。
由于Python的相关资源非常多,本书不可能全部涉及,相信读者在掌握本书所介绍的一些相关知识之后,只要充分利用互联网的搜索功能,就一定能够很快地找到合适的Python解决方案。此外,由于绝大多数Python资源都开放源代码,因此读者将会很容易地对感兴趣的内容进行深度挖掘和研究。
本书适合于工科高年级本科生、研究生、工程技术人员以及计算机开发人员阅读。实例篇以信号处理为主,通过简单易懂的Python源程序,实际演示信号处理的一些基础知识和原理,因此特别适合于相关专业的学生作为扩展视野的补充阅读教材。
阅读本书的读者需要掌握Python语言的一些基础知识,下面是一个“自我检测列表”,如果读者熟悉下述内容,阅读本书的实例源代码就应该没有困难。此外由于Python程序简单易读,即使读者没有接触过Python,也可以边阅读本书边通过其他书籍或免费教程学习Python。
● 基本语法:库的载入(import)、循环(for、while)、判断(if)、函数定义(def)
● 基本数据类型的用法:列表(list)、字典(dict)、元组(tuple)、字符串
● 面向对象的基本语法:类(class)、继承
● C语言编程的基础知识②
有关Python语言的基础知识,可以参考啄木鸟社区的Python图书简介。
啄木鸟社区的Python图书概览
本书所有演示程序,均在Windows XP系统下采用Python(xy)通过测试。如果读者觉得安装众多的Python程序库很麻烦,不妨下载安装Python(xy),或者直接使用本书所附光盘中的Python(xy)安装程序。

关于此书评价

★在书中,作者为我们介绍了科学计算编程所需的各个方面。从NumPy库和SciPy算法工具库的基础开始,介绍了任何科学计算应用程序所需的基本工具。之后,作者很恰当地介绍了二维绘图以及三维可视化库——matplotlib、Chaco和Mayavi。用Traits和TraitsUI进行应用程序和界面开发,以及用Cython、Weave、ctypes和SWIG等与传统的C语言库相互结合等内容在书中也有很好的介绍。除了这些核心的工具之外,本书还介绍了使用SymPy进行数学符号运算以及其他的各种有用的主题。

——Eric Jones

书摘内容

为了减少计算时间,我们不在迭代循环中计算选择迭代方程的随机数,而是事先通过每个迭代方程的概率,计算出选择数组select。注意这里使用accumulate()先将概率累加,然后产生一组0到1之间的随机数,通过判断随机数所在的区间来选择不同的方程下标。也可以使用SciPy的stats模块中的离散随机变量来产生这个随机下标数组。
最后通过scattero将得到的坐标点绘制成散列图。其中:s参数是每个散列点的大小,因为我们要绘制10万个点,为了提高绘图速度,我们选择点的大小为1个像素;c参数是点的颜色,这里选择绿色;marker参数是点的形状,“s”表示正方形,方形的绘制是最陕的:linewidths参数是点的边框宽度,0表示没有边框。
此外,c参数还可以传入一个数组,作为每个点的颜色值。我们将计算坐标的公式下标传入,这样可以直观地看出点是由哪个公式迭代产生的。
……

Python科学计算(附CD-ROM光盘1张) [Scientific Computing With Python]最新最全的试读、书评、目录、简介信息由Python中文网整理提供。

上一篇:没有了

下一篇:Python 3 数据分析与机器学习实战