将 Linux 作为一个科学计算平台进行探索(3)

使用 Python 进行科学计算是 Enthought 公司提供的主要服务。Enthought 的商用产品和支持是付费内容,但是它们仍在很大程度上为开源社区做出了贡献。它们的贡献直接对 NumPy 和 SciPy 代码库起作用,Enthought 在年度 PyCon 会议上展现了它的魅力,并主办了 SciPy 会议。

您可以使用 Ubuntu 软件管理器安装运行 IPython、NumPy 和 SciPy 所需的各种软件,或者是您可以下载并安装免费的 EPD 版本,该版本称为 EPD Free。Enthought 提供 32 位和 64 位版本的 EPD Free,并且已经在 Red Hat、Ubuntu 和 openSUSE 上验证了这些版本。关于此内容的警告是:一些 64 位 Linux 系统部包含 32 位库,因此需要 64 位的软件包版本。

要安装 EPD Free,首先需要下载安装程序脚本,然后使用下列命令运行它:

bash epd_free-7-2-2-rh5-x86.sh  

为了在将来能够便捷地启动 EPD,您需要在 shell 启动脚本(.cshrc 或 .bash_profile)中添加一些代码行。Ubuntu 默认情况下使用的是 bash shell,因此我展示了在 .bash_profile 中添加代码的示例。对于本文,我使用了下列代码行:

export PATH=/home/paul/Downloads/epd_free-7.2-2-rh5-x86_64/bin:$PATH  

使用 EPD

IPython 是 EPD 和 Sage 之间另一种常见的共同特性,并且它是主要用户界面工具。与 Sage 非常类似,EPD 同时安装命令行界面和基于 Web 的笔记本。

命令行界面

基于 Qt 的控制台提供了一些改进的功能,包括使用 Pygments 库完全突出显示语法。它还提供了在内联图中这样做的能力。要获得此功能,可使用下列命令启动 IPython:

ipython --pylab  

图 5 显示了具有嵌入式图的 Qt 控制台。


图 5. 创建新的 PyDev 项目

PyDev 界面的屏幕截图,使用在底部绘制的图形创建新项目


基于 Web 的界面

最新的 IPython (0.12) 版本包含与 Sage 类似的基于 Web 的笔记本功能。要获得笔记本功能,需要安装几个相关项,包括 ZeroMQ 和 Tornado Web 服务器。要从命令行启动笔记本,请在终端窗口中输入下列命令:

ipython notebook  

这会启动 Tornado Web 引擎并启动打开到仪表板页面的默认 Web 浏览器。如果随后您选择了默认笔记本,则应看到类似 图 6 的新窗口。


图 6. iPython Notebook

已在 iPython Notebook 中实现的图 5 中的项目的屏幕截图


与 Web 笔记本的一个不同之处是:当您想执行代码时,需要使用 Control-Enter。这使输入多行代码变为可能,如 图 6 所示,并会按执行顺序在输入框中输入所有内容。因此,可以轻松地将函数分解为多个可管理的块。

可使用 Markdown 语法注释您的笔记本。如果您对 Markdown 不熟悉,那么使用纯文本创建格式化的超文本标记语言 (HTML) 是一种基本方法。例如,空格后面加一个井号符号 (#) 在 HTML 中表示 H1,而两个井号符号表示 H2,以此类推。这允许您添加注释或文档来补充说明代码和图形。

Pandas

Python Data Analysis Library 或 pandas 是连接 SciPy 和 NumPy 的另一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Comma-separated values (CSV) 文件表示在有关各方之间分发数据的最常见的方法之一。Pandas 提供了一种优化库功能来读写多种文件格式,包括 CSV 和高效的 HDF5 格式。

read_csv 模块了解在第一行中如何使用标头信息解析常见的 CSV 文件。它还了解如何使用内置解析程序处理具有日期或时间的文件。Pandas 包含一个日期工具模块,该模块具有执行各种日期计算的长操作例程列表。清单 1 显示了来自 pandas 文档的代码段,显示了如何查找距离另一个日期四个月零五天的日期:


清单 1. Pandas 日期映射示例
d = datetime(2012, 4, 20) d + pandas.DateOffset(months=4, days=5) datetime.datetime(2012, 8, 25, 0, 0)  

当切割大数据集时,Pandas 非常有用。在将您的数据导入原生数据结构后,有大量工具可供选择,可执行几乎所有类型的操作。可使用标准 Python 切片语法对数据进行切片,对所有或部分数据执行操作,或者是使用 matplotlib 绘制它。如果您需要执行任何数据操作任务,可能会想使用 pandas 加速这一过程。

结束语

毫无疑问,Linux 可支持几乎您让它执行的任何科学计算任务。大多数学术团体都支持它,它快速获得了新行业用户的青睐,这些用户用它来降低其软件预算。这些工具提供了比其商业竞争对手更丰富的内容,最重要的是,它们是免费的。对于寻找充分支持的软件的客户来说,有 Enthought 及其 EPD 商用产品可供选择。它们为所有付费客户提供完整的客户支持和培训。

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/21034.html