Logo
Section 1 / 2

简介

本课程将带你进入科学计算的世界。

导入

简介

本课程将带你进入科学计算的世界。

数十年来,Fortran 一直是科学计算的首选语言,因其运行速度极快。20世纪80年代,当程序员的时间价值超过计算时间时,人们需要更易于学习和使用的编程语言。在研究领域,传统的“编写-编译-执行”工作流逐渐被“交互-探索-可视化”工作流所取代。在此背景下,MATLAB、IDL、Mathematica 和 Maple 等工具应运而生。

现代科学计算不仅仅局限于数值计算。它需要具备多功能性:处理大规模数据集,提供比单纯数值数组更丰富的数据结构,支持网络调用,与数据库对接,与其他网页应用协同工作,处理多种数据格式,支持团队协作,便于文档编写等。

MATLAB vs. Python

MATLAB 是专有软件,价格昂贵且难以扩展。Python 则是开源的、由社区驱动的、可移植的、功能强大的且可扩展的。Python 在字符串处理、命名空间、类以及图形用户界面(GUI)方面表现更优。尽管 MATLAB(及其 Simulink 工具箱)拥有庞大的库资源,但 Python 正在迎头赶上,因为越来越多的科学项目正在采用它。据称,MATLAB 在可扩展性、复杂数据结构、内存管理、系统任务和数据库编程方面表现不佳。

Course Image

MATLAB                             vs.                                \space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space vs.\space\space\space\space\space\space\space \space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space Python

然而,Python 也存在一些批评声音。其语法不够一致,因为不同包由不同开发者编写,满足不同需求。例如,SciPy 中存在两个常微分方程(ODE)求解器,但它们使用不兼容的语法。包之间功能重复也可能导致混淆。在数据回归、边值问题和偏微分方程(PDE)方面,MATLAB 表现更佳。

2014 年,Konrad Hinsen 指出,对于那些代码只写一次且很少维护的小规模项目,Python 可能并不合适。当 Python 的科学库因弃用旧类、函数和方法而升级时,这一问题尤为突出。

但不可否认的是,Python 至少在某些场景下是合适的。

为什么选择 Python 进行科学计算?

  • Python 不仅适用于数值操作,还提供一个计算生态系统,能够满足现代科学家的各种需求。

  • Python 在系统集成方面表现出色。鸭子类型(duck typing)是其中一个重要特性,有助于处理诸如数据类型、内存视图、PyCapsule 以及 NumPy 数组等科学计算中的常见问题。

  • Python 易于学习和使用。它具有自然流畅的语法,使研究人员能够更直接地表达和探索想法,而不必与底层语言的语法细节搏斗。

  • 使用 Python 时,性能瓶颈可以在低级别进行优化,同时不牺牲高级别的易用性。研究人员可以以渐进方式探索和可视化想法。IPython/Jupyter 笔记本和 matplotlib 为此提供了支持。各种 Python 工具可以在同一运行时环境中协同工作并共享数据,无需仅通过文件系统交换数据。


在下一课中,我们将探讨谁最能从本课程中受益,以及你将从中获得什么。

关于本课程