科学应用

优质
小牛编辑
144浏览
2023-12-01

背景

Python 常用于开发高性能的科学应用。它被广泛应用于学术和科学项目中,因为它易于编写和执行。

由于它的高性能,Python 中的科学计算经常使用扩展库,通常用更快的语言编写(比如 C 语言,或者用于矩阵操作的 FORTRAN) 。主要使用的库由 NumPySciPy 和 Matplotlib 。详细讨论这些库超出了 Python 最佳实践指南的范围。然而,对 Python 科学计算的生态系统的全面介绍可以在 Python Scientific Lecture Notes 中找到。

Tools

IPython

IPython 是增强版的 Python 解释器, 为科学计算提供了极大的便利。inline mode 允许在终端显示图形和绘图(基于 Qt 版本)。 此外, notebook 模式支持有文字的编程和可复制的科学的产生一个基于 web 的 Python 笔记本。 它能够允许你存储大量的 Python 代码及其运行结果还有附加的注释 (HTML , LaTeX , Markdown) 。 也可以以各种文件格式共享和导出。

NumPy

NumPy 是用C (和 FORTRAN )编写的用于高等数学函数的库。NumPy 巧妙地运用多维数组和对数组的操作函数的方法克服了在 Python 中运行速度较慢的算法问题。 任何算法都可以表示为处理数组的一个函数,允许算法快速进行。

NumPy 是 SciPy 项目的一部分且作为一个独立的库发布,因此对那些只需要用到基础功能的人来说可以不用安装其他 SciPy。

NumPy 兼容 Python 2.4 到 2.7.2 和 3.1+ 。

Numba

Numba 是一种 NumPy 感知的 Python 编译器 (just-in-time (JIT) specializing compiler) ,通过特殊的装饰器将注释的 Python ( 和 NumPy) 代码编译为 LLVM (低级别虚拟机) 。 简单讲, Numba 使用一个用 LLVM 来编译 Python 代码系统,且编译成可在运行时本地执行的代码。

SciPy

SciPy 是一个使用 NumPy 实现更多数学函数的库。 SciPy 使用 NumPy 数组作为基本数据结构, 实现了各种科学计算中常用的模块,包括现行代数、积分(微积分)、常微分方程求解和信号处理。

Matplotlib

Matplotlib 是一个灵活的绘图库,用于创建交互式的 2D 和 3D 图,这些图也可以保存为手稿质量的数据。该 API 在许多方面非常类似 MATLAB ,这样 MATLAB 用户转换为 Python 就很简单了。 许多例子,以及使用源码重构的都可以在 matplotlib gallery 中找到。

Pandas

Pandas 是基于 Numpy 的数据操作库,它为访问、索引、合并和数据分组提供了许多有用的方法和功能且易于使用。主数据结构 (DataFrame) 接近于 R 统计软件包;也就是说,带索引的异构数据表,时间序列操作和数据自动对齐等功能它都支持。

Rpy2

Rpy2 一个使 Python 能够使用 R 语言的数据统计包的库,允许 Python 执行 R 的函数并在两者间传递数据。 Rpy2 是 Rpy 面向对象的实现。

PsychoPy

PsychoPy 是一个专为认知科学家而设计的库,允许建立认知心理学和神经科学实验。该库可以处理激励的表示,实验设计和数据收集的脚本。

资源

安装 Python 科学计算包的过程可能会麻烦多多,因为很多包都是以 Python 的 C 语言扩展模块的形式实现的,这意味着我们得去编译它们。我们在这一小节列出了各种所谓的 Python 科学计算发行版,它们都提供了诸多预编译好的且安装简单的 Python 科学计算包。

面向 Python 扩展包的非官方 Windows 平台二进制库

很多人在 Windows 平台上进行科学计算,然而在 Windows 平台上,很多科学计算包的构建和安装都复杂得令人发指。不过,Christoph Gohlke 已经为很多有用的 Python 包编译了 Windows 平台上的二进制库。他编译的包的规模不断增长,从主要是科学计算 Python 包的资源规模拓展成为了如今更加广泛的资源规模。如果你使用的是 Windows 平台,可以来瞧一瞧。

Anaconda

Continuum Analytics 推出了 Anaconda Python 发行版,这一发行版囊括了几乎所有常用的 Python 科学计算包以及与数据分析和大数据方面相关的包。Anaconda 本身是免费的,不过 Continuum 公司也销售着大量的专有插件。针对出于学术和研究目的的用户,这些插件也提供了免费使用许可。

Canopy

Canopy 是另一套 Python 科学计算发行版,由 Enthought 推出。功能上有所受限的 Canopy Express 版本是可以免费使用的,而完整版要收费。针对出于学术用途的用户,Canopy 也提供了免费使用许可。