《Python 科学计算》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:张若愚编
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2012
  • ISBN:9787302273608
  • 页数:621 页
图书介绍:本书介绍如何使用Python开发科学计算的应用程序。

第1章 软件包的安装和介绍 1

1.1 Python简介 1

1.2安装软件包 2

1.2.1 Python(x,y) 2

1.2.2 Enthought Python Distribution(PPD) 3

1.3方便的开发工具 3

1.3.1 IPython 4

1.3.2 Spyder 8

1.3.3 Wing IDE 101 12

1.4函数库介绍 13

1.4.1数值计算库 13

1.4.2符号计算库 14

1.4.3界面设计 14

1.4.4绘图与可视化 14

1.4.5图像处理和计算机视觉 15

第2章 NumPy——快速处理数据 16

2.1 ndarray对象 16

2.1.1创建数组 16

2.1.2存取元素 21

2.1.3多维数组 24

2.1.4结构数组 29

2.1.5内存结构 32

2.2 ufunc运算 35

2.2.1四则运算 37

2.2.2比较和布尔运算 39

2.2.3自定义ufunc函数 40

2.2.4广播 42

2.2.5 ufunc函数的方法 46

2.3多维数组的下标存取 48

2.3.1下标对象 48

2.3.2整数数组作为下标 49

2.3.3一个复杂的例子 51

2.3.4布尔数组作为下标 53

2.4庞大的函数库 54

2.4.1求和、平均值、方差 54

2.4.2最值和排序 55

2.4.3多项式函数 57

2.4.4分段函数 60

2.4.5统计函数 62

2.5线性代数 65

2.5.1各种乘积运算 65

2.5.2解线性方程组 67

2.6掩码数组 69

2.7文件存取 72

2.8内存映射数组 75

第3章 Scipy——数值计算库 79

3.1常数和特殊函数 79

3.2优化——optimize 81

3.2.1最小二乘拟合 81

3.2.2函数最小值 84

3.2.3非线性方程组求解 86

3.3插值——interpolate 88

3.3.1 B样条曲线插值 88

3.3.2外推和Spline拟合 90

3.3.3二维插值 91

3.4数值积分——integrate 93

3.4.1球的体积 93

3.4.2解常微分方程组 95

3.5信号处理——signal 97

3.5.1中值滤波 97

3.5.2滤波器设计 98

3.6图像处理——ndimage 100

3.6.1膨胀和腐蚀 101

3.6.2 Hit和Miss 102

3.7统计——stats 105

3.7.1连续和离散概率分布 105

3.7.2二项、泊松、伽玛分布 108

3.8嵌入C语言程序weave 112

第4章 SymPy——符号运算好帮手 115

4.1从例子开始 115

4.1.1封面上的经典公式 115

4.1.2球体体积 117

4.2数学表达式 119

4.2.1符号 119

4.2.2数值 121

4.2.3运算符和函数 122

4.3符号运算 125

4.3.1表达式变换和化简 125

4.3.2方程 128

4.3.3微分 129

4.3.4微分方程 130

4.3.5积分 131

4.4其他功能 133

4.4.1平面几何 133

4.4.2绘图 135

第5章 matplotlib——绘制精美的图表 139

5.1快速绘图 139

5.1.1使用pyplot模块绘图 139

5.1.2以面向对象方式绘图 142

5.1.3配置属性 143

5.1.4绘制多个子图 145

5.1.5配置文件 147

5.1.6在图表中显示中文 149

5.2 Artist对象 152

5.2.1 Artist对象的属性 154

5.2.2 Figure容器 155

5.2.3 Axes容器 156

5.2.4 Axis容器 159

5.2.5 Artist对象的关系 163

5.3坐标变换和注释 164

5.3.1 4种坐标系 167

5.3.2坐标变换的步骤 169

5.3.3制作阴影效果 173

5.3.4添加注释 174

5.4绘图函数简介 177

5.4.1对数坐标图 177

5.4.2极坐标图 178

5.4.3柱状图 179

5.4.4散列图 180

5.4.5图像 181

5.4.6等值线图 184

5.4.7三维绘图 187

第6章 Traits——为Python添加类型定义 190

6.1开发背景 190

6.2 Trait属性的功能 192

6.3 Trait类型对象 196

6.4 Trait的元数据 198

6.5预定义的Trait类型 200

6.6 Property属性 204

6.7 Trait属性监听 206

6.8 Event和Button属性 210

6.9 Trait属性的从属关系 211

6.10动态添加Trait属性 213

6.11创建自己的Trait类型 215

6.11.1从TraitType继承 215

6.11.2使用Trait() 217

6.11.3定义TraitHandler类 219

第7章 TraitsUI——轻松制作用户界面 221

7.1默认界面 221

7.2用View定义界面 222

7.2.1外部视图和内部视图 222

7.2.2多模型视图 226

7.2.3 Group对象 228

7.2.4配置视图 231

7.3用Handler控制界面和模型 232

7.3.1用Handler处理事件 233

7.3.2 Controller和UIInfo对象 237

7.3.3响应Trait属性的事件 238

7.4属性编辑器 240

7.4.1编辑器演示程序 241

7.4.2对象编辑器 243

7.4.3字符串列表编辑器 248

7.4.4对象列表编辑器 250

7.5菜单、工具条和状态栏 252

7.6设计自己的编辑器 255

7.6.1 Trait编辑器的工作原理 255

7.6.2制作matplotlib的编辑器 259

7.6.3 CSV数据绘图工具 262

第8章 Chaco——交互式图表 264

8.1面向脚本绘图 264

8.2面向应用绘图 265

8.2.1多条曲线 267

8.2.2 Plot对象的结构 271

8.2.3编辑绘图属性 275

8.2.4容器(Container) 276

8.3添加交互工具 279

8.3.1平移和缩放 279

8.3.2选取范围 282

8.3.3选取数据点 284

8.3.4套索工具 287

8.4二次开发 289

8.4.1用Kiva库在数组上绘图 290

8.4.2 Enable库的组件 292

8.4.3设计圆形选择工具 297

8.4.4制作动画演示 301

第9章 TVTK——数据的三维可视化 303

9.1流水线(Pipeline) 304

9.1.1显示圆锥 304

9.1.2用ivtk观察流水线 307

9.2数据集(Dataset) 313

9.2.1 ImageData 313

9.2.2 RectilinearGrid 318

9.2.3 StructuredGrid 319

9.2.4 PolyData 321

9.3可视化实例 324

9.3.1切面 325

9.3.2等值面 330

9.3.3流线 333

9.4 TVTK的改进 337

9.4.1 TVTK的基本用法 338

9.4.2 Trait属性 339

9.4.3序列化(Pickling) 339

9.4.4集合迭代 340

9.4.5数组操作 341

第10章 Mayavi——更方便的可视化 343

10.1用mlab快速绘图 343

10.1.1点和线 343

10.1.2 Mayavi的流水线 345

10.1.3二维图像的可视化 348

10.1.4网格面 352

10.1.5修改和控制流水线 356

10.1.6标量场 358

10.1.7矢量场 361

10.2 Mayavi和TVTK之间的关系 363

10.2.1显示TVTK流水线 363

10.2.2两条流水线之间的关系 365

10.3 Mayavi应用程序 367

10.3.1操作流水线 368

10.3.2命令行和对象浏览器 371

10.4将Mayavi嵌入到界面中 374

第11章 VPython——制作3D演示动画 378

11.1场景、物体和照相机 378

11.1.1控制场景窗口 380

11.1.2控制照相机 383

11.1.3模型的属性 384

11.1.4三维模型 387

11.2制作动画演示 390

11.2.1简单动画 390

11.2.2盒子中反弹的球 391

11.3与场景交互 393

11.3.1响应键盘事件 394

11.3.2响应鼠标事件 394

11.4用界面控制场景 397

11.5创建复杂模型 400

11.5.1 faces0的用法 400

11.5.2读入模型数据 402

第12章 OpenCV——图像处理和计算机视觉 408

12.1存储图像数据的Mat对象 409

12.1.1 Mat对象和NumPy数组 410

12.1.2像素点类型 414

12.1.3其他数据类型 415

12.1.4 Vector类型 417

12.1.5在图像上绘图 418

12.2图像处理 421

12.2.1二维卷积 421

12.2.2形态学运算 424

12.2.3填充——floodFilt 426

12.2.4去瑕疵——inpaint 427

12.3图像变换 428

12.3.1几何变换 428

12.3.2重映射——remap 430

12.3.3直方图统计 433

12.3.4二维离散傅立叶变换 437

12.4图像识别 440

12.4.1用霍夫变换检测直线和圆 440

12.4.2图像分割 444

12.4.3用SURF进行特征匹配 450

第13章 数据和文件 453

13.1声音的输入输出 453

13.1.1读写WAV文件 453

13.1.2用pyAudio播放和录音 456

13.2视频的输入输出 459

13.2.1读写视频文件 459

13.2.2安装视频编码 464

13.3读写HDF5文件 465

13.4读写Excel文件 469

13.4.1写Excel文件 469

13.4.2读Excel文件 471

第14章 数字信号系统 473

14.1 FIR和IIR滤波器 473

14.2 FIR滤波器设计 477

14.2.1用firwin()设计滤波器 479

14.2.2用remez()设计滤波器 481

14.2.3滤波器的级联 483

14.3 IIR滤波器设计 485

14.3.1巴特沃斯低通滤波器 485

14.3.2双线性变换 487

14.3.3滤波器的频带转换 490

14.4数字滤波器的频率响应 494

14.5二次均衡滤波器设计工具 497

14.6零相位滤波器 500

14.7重取样 501

第15章 频域信号处理 505

15.1 FFT演示程序 505

15.1.1 FFT知识复习 505

15.1.2合成时域信号 509

15.1.3三角波FFT演示程序 511

15.2观察信号的频谱 512

15.2.1窗函数 515

15.2.2频谱平均 517

15.2.3谱图 519

15.3卷积运算 522

15.3.1快速卷积 522

15.3.2分段运算 524

15.4信号处理 526

15.4.1基本框架 527

15.4.2频域滤波器 528

15.4.3频率变调处理 530

15.4.4用谱图差减法降噪 531

15.5 Hilbert变换 532

第16章 用C语言提高计算效率 537

16.1用ctypes调用DLL库 537

16.2用Weave嵌入C++程序 541

16.2.1 Weave的工作原理 541

16.2.2处理NumPy数组 543

16.2.3使用blitz()提速 546

16.2.4扩展模块 548

16.3用Cython将Python编译成C 549

16.3.1编译Cython程序 549

16.3.2提高计算效率 550

16.3.3快速访问NumPy数组 553

16.4用SWIG创建扩展模块 555

16.4.1 SWIG的调用方法和实例 555

16.4.2 SWIG基础 558

16.4.3 SWIG处理NumPy数组 566

第17章 自适应滤波器 571

17.1自适应滤波器简介 571

17.1.1系统识别 571

17.1.2信号预测 572

17.1.3信号均衡 572

17.2 NLMS计算公式 573

17.3用NumPy实现NLMS算法 575

17.3.1系统辨识模拟 577

17.3.2信号均衡模拟 579

17.3.3卷积逆运算 581

17.4用C语言加速NLMS运算 583

17.4.1用SWIG编写扩展模块 583

17.4.2用Weave嵌入C++程序 586

第18章 单摆和双摆模拟 588

18.1单摆模拟 588

18.1.1小角度时的摆动周期 589

18.1.2大角度时的摆动周期 590

18.2双摆模拟 592

18.2.1公式推导 592

18.2.2微分方程的数值解 595

18.2.3动画演示 598

第19章 分形几何 599

19.1 Mandelbrot集合 599

19.1.1使用NumPy加速计算 601

19.1.2使用Weave加速计算 603

19.1.3连续的逃逸时间 604

19.1.4 Mandelbrot演示程序 605

19.2迭代函数系统(IFS) 606

19.2.1二维仿射变换 610

19.2.2迭代函数系统设计器 610

19.3 L-System分形 613

19.4分形山脉 616

19.4.1一维中点移位法 616

19.4.2二维中点移位法 618

19.4.3菱形方形算法 619