设为首页 收藏本站
查看: 1861|回复: 0

[经验分享] Python科学计算

[复制链接]

尚未签到

发表于 2015-4-21 05:21:03 | 显示全部楼层 |阅读模式
  Python科学计算
  基本信息

DSC0000.jpg
作者: 张若愚
出版社: 清华大学出版社
出版年: 2012-1-1
页数: 619
定价: 98.00
装帧: 平装
ISBN: 9787302273608

谁不能错过本书?

  • 如果您有一定的Python编程经验,经常需要对数值数据做一些处理、分析、可视化的工作,那么本书的内容十分适合您阅读。
  • 如果您是程序员,即使工作与科学计算无关,本书所介绍的各种扩展库也将能丰富您的工具箱,为您的工作提供新的解决方案。
  • 如果您是科研人员,即使对Python或编程并不十分了解,但只要花一点时间学习Python语言以及本书介绍的内容,就能让您的工作效率大幅提高。
  • 附赠光盘中包含书中用到的Python扩展程序、学习本书时用到的工具软件以及书中所有实例的源程序。
  内容简介:
  本书介绍如何用Python开发科学计算的应用程序,除了介绍数值计算之外,还着重介绍如何制作交互式的2D、3D图像,如何设计精巧的程序界面,如何与C语言编写的高速计算程序结合,如何编写声音、图像处理算法等内容。书中涉及的Python扩展库包括NumPy、SciPy、SymPy、matplotlib、Traits、TraitsUI、Chaco、TVTK、Mayavi、VPython、OpenCV等,涉及的应用领域包括数值运算、符号运算、二维图表、三维数据可视化、三维动画演示、图像处理以及界面设计等。
  书中以大量实例引导读者逐步深入学习,每个实例程序都有详尽的解释,并都能在本书推荐的运行环境中正常运行。此外,本书附有大量的图表和插图,力求减少长篇的理论介绍和公式推导,以便读者通过实例和数据学习并掌握理论知识。
  作者介绍:
  张若愚,毕业于华中理工大学(现华中科技大学)通信工程专业,2004年获日本姬路工业大学(现兵库县立大学)硕士学位。毕业后于日本神户制钢综合研究所从事研究开发工作至今,研究方向为:嵌入式DSP信号处理系统开发,嵌入式MCU控制系统开发,工业控制软件开发,信号处理、数据处理以及生产系统的计算机模拟。在工作中他积极采用Python作为主要编程语言,在数据处理、信号分析、工业控制、算法模拟等领域取得了较好的研究成果。已完成的研究课题有:嵌入式声音分离系统、车载音响设备、超声波探伤系统、压缩机系统的数字模拟等。
  媒体评论
  在书中,作者为我们介绍了科学计算编程所需的各个方面。从NumPy库和SciPy算法工具库的基础开始,介绍了任何科学计算应用程序所需的基本工具。之后,作者很恰当地介绍了二维绘图以及三维可视化库——matplotlib、Chaco和Mayavi。用Traits和TraitsUI进行应用程序和界面开发,以及用Cython、Weave、ctypes和SWIG等与传统的C语言库相互结合等内容在书中也有很好的介绍。除了这些核心的工具之外,本书还介绍了使用SymPy进行数学符号运算以及其他的各种有用的主题。
  ——Eric Jones
  
  Eric Jones:Enthought公司CEO,他在工程和软件开发领域拥有广泛的背景,指导Enthought公司的产品工程和软件设计。在共同创建Enthought公司之前,他在杜克大学电机工程学系从事数值电磁学以及遗传优化算法方面的研究,并获得了该系的硕士和博士学位。他教授过许多用Python做科学计算的课程,并且是Python软件基金会的成员。
  目录
  第1章  软件包的安装和介绍... 1
  1.1  Python简介... 1
  1.2  安装软件包... 2
  1.2.1  Python(x,y) 2
  1.2.2  Enthought Python Distribution
(EPD) 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  faces()的用法... 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  填充——floodFill 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
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-58942-1-1.html 上篇帖子: Python脚本检测网站链接是否存在 下篇帖子: Python压平嵌套列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表