A Primer on Scientific Programming with Python(第3版) 封面

A Primer on Scientific Programming with Python(第3版)

暂无评分
章节数
20
丛书
Texts in Computational Science and Engineering
ISBN
9783642302930

标签

内容简介

本书是 Springer「Texts in Computational Science and Engineering」系列第 6 卷,作者 Hans Petter Langtangen 是奥斯陆大学计算机科学教授、Simula 研究中心生物医学计算中心(Centre for Biomedical Computing)主任,长期从事计算科学与 Python 应用研究。全书以实例与问题驱动的方式,带领没有编程基础的读者用 Python 完成科学计算入门。第 3 版修订于 2012 年出版,正文约 798 页,内容包括:用公式计算、循环与列表、函数与分支、输入数据与错误处理、数组计算与曲线绘图、文件/字符串/字典、类的初阶、随机数与简单博弈、面向对象编程;书末还附有序列与差分方程、离散微积分入门、微分方程入门、一个完整的微分方程项目、微分方程的程序实现、调试技巧、从 Python 迁移到编译型语言等技术专题。书中示例取自数学、数值微积分、统计、物理、生物与金融等领域,几乎每个例子都配有完整可运行代码,并特别强调「Matlab 风格」的过程式写法与面向对象写法的对照,说明 Python 可以作为 Matlab 在科学计算中的替代方案。作者在前言中说明读者只需具备高中数学基础,若同时学习经典与现代一元微积分则效果更佳。

编辑推荐

很多「Python 科学计算」书是从工具库讲起:先装 NumPy、SciPy、Matplotlib,再依次演示 API。Langtangen 这本书走的是另一条路:从最朴素的公式计算和循环写起,让读者先用语言本身把数值过程写明白,再自然过渡到数组计算、类与面向对象,最后落到差分方程与微分方程求解。这种「先造轮子、再用轮子」的编排,对理解科学计算为什么这样写代码极有帮助,也解释了为何它能成为 Springer 计算科学系列中流传最广的教材之一。第 3 版补充了输入数据与错误处理、调试与向编译型代码迁移等工程性专题,全书的示例都配有完整代码,可直接改参数做实验。数学门槛不高,只需要高中数学,但作者反复提示最好同时学一元微积分,说明这本书的野心不止于教语法,而是让读者在编程、数学与具体科学问题三者之间建立联系。若你打算长期做数值计算,这本约 800 页的厚书值得当作案头参考,而不是速成读物。

适合谁读

适合

  • 理工科本科高年级或研究生,需要把课程作业与科研计算用 Python 落地的人
  • 从 Matlab 转向 Python、希望理解两种写法差异的科研人员与工程师
  • 准备开设「科学计算导论/计算物理」类课程、需要现成案例与习题的教师
  • 已会 Python 语法,但想系统补齐数值方法与面向对象写法自学者

不适合

  • 零基础且只想快速学会用 pandas 做数据分析的读者,本书不涉及数据清洗与可视化库
  • 希望直接学习 NumPy、SciPy、Matplotlib 等库 API 速查的手册型读者
  • 英语阅读吃力且需要中文讲解的入门者(本书原文为英文,无官方中文版)

阅读建议

  1. 按章顺序推进,每章的示例代码亲手敲一遍并改参数,比只读讲解收获大得多。
  2. 同步补一元微积分与线性代数基础,遇到差分方程与微分方程章节时才不会被数学卡住。
  3. 把书末的调试与迁移到编译型代码两章当作工程实践手册,做项目时再回头细读。
  4. 书中代码基于 Python 2 时代环境,练习时注意改成 Python 3 写法,并使用当前版本的 NumPy。

目录

  1. 前言(Preface)
  2. 用公式计算(Computing with Formulas)
  3. 循环与列表(Loops and Lists)
  4. 函数与分支(Functions and Branching)
  5. 输入数据与错误处理(Input Data and Error Handling)
  6. 数组计算与曲线绘图(Array Computing and Curve Plotting)
  7. 文件、字符串与字典(Files, Strings, and Dictionaries)
  8. 类简介(Introduction to Classes)
  9. 随机数与简单游戏(Random Numbers and Simple Games)
  10. 面向对象编程(Object-Oriented Programming)
  11. 序列与差分方程(Sequences and Difference Equations)
  12. 离散微积分入门(Introduction to Discrete Calculus)
  13. 微分方程入门(Introduction to Differential Equations)
  14. 一个完整的微分方程项目(A Complete Differential Equation Project)
  15. 微分方程的程序实现(Programming of Differential Equations)
  16. 调试(Debugging)
  17. 把 Python 迁移到编译型代码(Migrating Python to Compiled Code)
  18. 技术专题(Technical Topics)
  19. 参考文献(Bibliography)
  20. 索引(Index)

常见问题

这本书有中文译本吗?
据检索,该书未见正式出版的中文译本,市面流传的多为英文原版 PDF 或影印本。若在合集中看到中文标题,通常是自行翻译的书名,正文仍为英文。
第 3 版和最新的第 5 版有什么区别?
第 3 版出版于 2012 年,正文约 798 页、共 9 章主体加若干技术专题。后续版本在此基础上不断修订,补充更新的 Python 写法与内容。若只求系统学习,第 3 版的主体框架仍适用,但代码风格偏旧。
需要先学 Python 语法再读吗?
不需要。作者明确面向编程新手,从公式计算、循环与列表讲起,逐步引入函数、类与面向对象。具备高中数学基础即可开始,但需注意书中代码多为 Python 2 写法。
书里的数学要求有多高?
作者要求高中数学基础,并建议同时学习经典与现代一元微积分。后半部分的差分方程、离散微积分和微分方程章节会涉及微积分与数值方法概念,数学准备越充分越顺畅。
适合当作课堂教学用书吗?
适合。该书属 Springer 的 TCSE 教材系列,示例与习题丰富,多数高校用作一学期「科学计算/计算物理导论」课程教材,也可作为自学与参考书。

读者评论

查询本书

本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。

同类高分