一.目录
第1章 软件包的安装和介绍 1
11 Python简介 112 安装软件包 2
121 Python(x,y) 2
122 Enthought Python Distribution (EPD) 3
13 方便的开发工具 3
131 IPython 4
132 Spyder 8
133 Wing IDE 101 12
14 函数库介绍 13
141 数值计算库 13
142 符号计算库 14
143 界面设计 14
144 绘图与可视化 14
145 图像处理和计算机视觉 15
第2章 NumPy——快速处理数据 16
21 ndarray对象 16
211 创建数组 16
212 存取元素 21
213 多维数组 24
214 结构数组 29
215 内存结构 32
22 ufunc运算 35
221 四则运算 37
222 比较和布尔运算 39
223 自定义ufunc函数 40
224 广播 42
225 ufunc函数的方法 46
23 多维数组的下标存取 48
231 下标对象 48
232 整数数组作为下标 49
233 一个复杂的例子 51
234 布尔数组作为下标 53
24 庞大的函数库 54
241 求和、平均值、方差 54
242 最值和排序 55
243 多项式函数 57
244 分段函数 60
245 统计函数 62
25 线性代数 65
251 各种乘积运算 65
252 解线性方程组 67
26 掩码数组 69
27 文件存取 72
28 内存映射数组 75
第3章 SciPy——数值计算库 79
31 常数和特殊函数 79
32 优化——optimize 81
321 最小二乘拟合 81
322 函数最小值 84
323 非线性方程组求解 86
33 插值——interpolate 88
331 B样条曲线插值 88
332 外推和Spline拟合 90
333 二维插值 91
34 数值积分——integrate 93
341 球的体积 93
342 解常微分方程组 95
35 信号处理——signal 97
VIII
Python 科学计算
目 录
351 中值滤波 97
352 滤波器设计 98
36 图像处理——ndimage 100
361 膨胀和腐蚀 101
362 Hit和Miss 102
37 统计——stats 105
371 连续和离散概率分布 105
372 二项、泊松、伽玛分布 108
38 嵌入C语言程序——weave 112
第4章 SymPy——符号运算好帮手 115
41 从例子开始 115
411 封面上的经典公式 115
412 球体体积 117
42 数学表达式 119
421 符号 119
422 数值 121
423 运算符和函数 122
43 符号运算 125
431 表达式变换和化简 125
432 方程 128
433 微分 129
434 微分方程 130
435 积分 131
44 其他功能 133
441 平面几何 133
442 绘图 135
第5章 matplotlib——绘制精美 的图表 139
51 快速绘图 139
511 使用pyplot模块绘图 139
512 以面向对象方式绘图 142
513 配置属性 143
514 绘制多个子图 145
515 配置文件 147
516 在图表中显示中文 149
52 Artist对象 152
521 Artist对象的属性 154
522 Figure容器 155
523 Axes容器 156
524 Axis容器 159
525 Artist对象的关系 163
53 坐标变换和注释 164
531 4种坐标系 167
532 坐标变换的步骤 169
533 制作阴影效果 173
534 添加注释 174
54 绘图函数简介 177
541 对数坐标图 177
542 极坐标图 178
543 柱状图 179
544 散列图 180
545 图像 181
546 等值线图 184
547 三维绘图 187
第6章 Traits——为Python添加类型 定义 190
61 开发背景 190
62 Trait属性的功能 192
63 Trait类型对象 196
64 Trait的元数据 198
65 预定义的Trait类型 200
66 Property属性 204
67 Trait属性监听 206
68 Event和Button属性 210
69 Trait属性的从属关系 211
610 动态添加Trait属性 213
611 创建自己的Trait类型 215
6111 从TraitType继承 215
6112 使用Trait() 217
6113 定义TraitHandler类 219
第7章 TraitsUI——轻松制作用户 界面 221
71 默认界面 221
72 用View定义界面 222
721 外部视图和内部视图 222
722 多模型视图 226
723 Group对象 228
724 配置视图 231
73 用Handler控制界面和模型 232
731 用Handler处理事件 233
732 Controller和UIInfo对象 237
733 响应Trait属性的事件 238
74 属性编辑器 240
741 编辑器演示程序 241
742 对象编辑器 243
743 字符串列表编辑器 248
744 对象列表编辑器 250
75 菜单、工具条和状态栏 252
76 设计自己的编辑器 255
761 Trait编辑器的工作原理 255
762 制作matplotlib的编辑器 259
763 CSV数据绘图工具 262
第8章 Chaco——交互式图表 264
81 面向脚本绘图 264
82 面向应用绘图 265
821 多条曲线 267
822 Plot对象的结构 271
823 编辑绘图属性 275
824 容器(Container) 276
83 添加交互工具 279
831 平移和缩放 279
832 选取范围 282
833 选取数据点 284
834 套索工具 287
84 二次开发 289
841 用Kiva库在数组上绘图 290
842 Enable库的组件 292
843 设计圆形选择工具 297
844 制作动画演示 301
第9章 TVTK——数据的三维可视化 303
91 流水线(Pipeline) 304
911 显示圆锥 304
912 用ivtk观察流水线 307
92 数据集(Dataset) 313
921 ImageData 313
922 RectilinearGrid 318
923 StructuredGrid 319
924 PolyData 321
93 可视化实例 324
931 切面 325
932 等值面 330
933 流线 333
94 TVTK的改进 337
941 TVTK的基本用法 338
942 Trait属性 339
943 序列化(Pickling) 339
944 集合迭代 340
945 数组操作 341
第10章 Mayavi——更方便的可视化 343
101 用mlab快速绘图 343
1011 点和线 343
1012 Mayavi的流水线 345
1013 二维图像的可视化 348
1014 网格面 352
1015 修改和控制流水线 356
1016 标量场 358
1017 矢量场 361
102 Mayavi和TVTK之间 的关系 363
1021 显示TVTK流水线 363
1022 两条流水线之间的关系 365
X
Python 科学计算
目 录
103 Mayavi应用程序 367
1031 操作流水线 368
1032 命令行和对象浏览器 371
104 将Mayavi嵌入到界面中 374
第11章 VPython——制作3D演示 动画 378
111 场景、物体和照相机 378
1111 控制场景窗口 380
1112 控制照相机 383
1113 模型的属性 384
1114 三维模型 387
112 制作动画演示 390
1121 简单动画 390
1122 盒子中反弹的球 391
113 与场景交互 393
1131 响应键盘事件 394
1132 响应鼠标事件 394
114 用界面控制场景 397
115 创建复杂模型 400
1151 faces()的用法 400
1152 读入模型数据 402
第12章 OpenCV——图像处理和计算机 视觉 408
121 存储图像数据的Mat对象 409
1211 Mat对象和NumPy数组 410
1212 像素点类型 414
1213 其他数据类型 415
1214 Vector类型 417
1215 在图像上绘图 418
122 图像处理 421
1221 二维卷积 421
1222 形态学运算 424
1223 填充——floodFill 426
1224 去瑕疵——inpaint 427
123 图像变换 428
1231 几何变换 428
1232 重映射——remap 430
1233 直方图统计 433
1234 二维离散傅立叶变换 437
124 图像识别 440
1241 用霍夫变换检测直线 和圆 440
1242 图像分割 444
1243 用SURF进行特征匹配 450
第13章 数据和文件 453
131 声音的输入输出 453
1311 读写WAV文件 453
1312 用pyAudio播放和录音 456
132 视频的输入输出 459
1321 读写视频文件 459
1322 安装视频编码 464
133 读写HDF5文件 465
134 读写Excel文件 469
1341 写Excel文件 469
1342 读Excel文件 471
第14章 数字信号系统 473
141 FIR和IIR滤波器 473
142 FIR滤波器设计 477
1421 用firwin()设计滤波器 479
1422 用remez()设计滤波器 481
1423 滤波器的级联 483
143 IIR滤波器设计 485
1431 巴特沃斯低通滤波器 485
1432 双线性变换 487
1433 滤波器的频带转换 490
144 数字滤波器的频率响应 494
145 二次均衡滤波器设计工具 497
146 零相位滤波器 500
147 重取样 501
第15章 频域信号处理 505
151 FFT演示程序 505
1511 FFT知识复习 505
1512 合成时域信号 509
1513 三角波FFT演示程序 511
152 观察信号的频谱 512
1521 窗函数 515
1522 频谱平均 517
1523 谱图 519
153 卷积运算 522
1531 快速卷积 522
1532 分段运算 524
154 信号处理 526
1541 基本框架 527
1542 频域滤波器 528
1543 频率变调处理 530
1544 用谱图差减法降噪 531
155 Hilbert变换 532
第16章 用C语言提高计算效率 537
161 用ctypes调用DLL库 537
162 用Weave嵌入C++程序 541
1621 Weave的工作原理 541
1622 处理NumPy数组 543
1623 使用blitz()提速 546
1624 扩展模块 548
163 用Cython将Python编译 成C 549
1631 编译Cython程序 549
1632 提高计算效率 550
1633 快速访问NumPy数组 553
164 用SWIG创建扩展模块 555
1641 SWIG的调用方法 和实例 555
1642 SWIG基础 558
1643 SWIG处理NumPy数组 566
第17章 自适应滤波器 571
171 自适应滤波器简介 571
1711 系统识别 571
1712 信号预测 572
1713 信号均衡 572
172 NLMS计算公式 573
173 用NumPy实现NLMS算法 575
1731 系统辨识模拟 577
1732 信号均衡模拟 579
1733 卷积逆运算 581
174 用C语言加速NLMS运算 583
1741 用SWIG编写扩展模块 583
1742 用Weave嵌入C++程序 586
第18章 单摆和双摆模拟 588
181 单摆模拟 588
1811 小角度时的摆动周期 589
1812 大角度时的摆动周期 590
182 双摆模拟 592
1821 公式推导 592
1822 微分方程的数值解 595
1823 动画演示 598
第19章 分形几何 599
191 Mandelbrot集合 599
1911 使用NumPy加速计算 601
1912 使用Weave加速计算 603
1913 连续的逃逸时间 604
1914 Mandelbrot演示程序 605
192 迭代函数系统(IFS) 606
1921 二维仿射变换 610
1922 迭代函数系统设计器 610
193 L-System分形 613
194 分形山脉 616
1941 一维中点移位法 616
1942 二维中点移位法 618
1943 菱形方形算法 619
二.计时
import datetime
start=datetime.datetime.now()
end=datetime.datetime.now()
print end-start