科学计算中Python与Matlab的比较


发布日期 : 2016-10-24 14:05:26 UTC

访问量: 920 次浏览

计算学科(通常也称作计算机科学与技术)作为现代技术的标志, 已成为世界各国经济增长的主要动力。在计算机产生之初及随后的一、二十年时间里, 计算机主要用于数值计算。大多数科学家认为使用计算机仅为编程问题, 不需作任何深刻的科学思考,计算机从本质上说是一种职业而一门学科。 到了20世纪70、80年代,计算技术得到了迅猛的发展和广泛的应用, 并开始渗透到大多数科学领域。 ACM和IEEE-CS联合攻关小组将计算机科学、计算机工程、计算机科学与工程、 计算机信息学以及其它类似名称的及其研究范畴统称为计算学科。

在科学计算领域,Python与Matlab是常用的两种语言。 Python是一种解释型、面向对象、动态的高级程序设计语言。 自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程。 目前Python已经成为最受欢迎的程序设计语言之一。

由于Python语言的简洁、易读以及可扩展性, 在国外用Python做科学计算的研究机构日益增多, 一些知名大学已经采用Python教授程序设计课程。 例如麻省理工学院的计算机科学及编程导论课程就使用Python语言讲授。

众多开源的科学计算软件包都提供了Python的调用接口, 例如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK。 而Python专用的科学计算扩展库就更多了, 例如如下3个十分经典的科学计算扩展库:NumPy、SciPy和matplotlib, 它们分别为Python提供了快速数组处理、数值运算以及绘图功能。 因此Python语言及其众多的扩展库所构成的开发环境十分适合工程技术、 科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。

说起科学计算,首先会被提到的可能是MATLAB。 然而除了MATLAB的一些专业性很强的工具箱目前还无法替代之外, MATLAB的大部分常用功能都可以在Python世界中找到相应的扩展库。 和MATLAB相比,用Python做科学计算有如下优点:

  • 首先,MATLAB是一款商用软件,并且价格不菲。而Python完全免费,众多开源的科学计算库都提供了Python的调用接口。用户可以在任何计算机上免费安装Python及其绝大多数扩展库。
  • 其次,与MATLAB相比,Python是一门更易学、更严谨的程序设计语言。它能让用户编写出更易读、易维护的代码。
  • 最后,MATLAB主要专注于工程和科学计算。然而即使在计算领域,也经常会遇到文件管理、界面设计、网络通信等各种需求。而Python有着丰富的扩展库,可以轻易完成各种高级任务,开发者可以用Python实现完整应用程序所需的各种功能。

例如,在开发云算笔记的过程中, 因为涉及到大量的计算,因此,先用了Python作为开发语言; 另外,为了保证开发过程的灵活性,使用了Tornado小型Web框架。 开发过程中,使用Python + Tornado, 完全实现了 Web 交互、应用程序必需的文档和数据库管理、用户界面设计、 与机器设备及其他软件进行通信等功能;而后期的开发, 完全可以使用Python实现系统模拟及算法优化。最后,整个应用程序是跨平台的, 开发可以在 Windows平台上进行,在实际使用中,则是部署到 Debian Linux平台中,而不受任何商用软件的使用条款限制。