跳转到主要内容

astroML包的性能插件

项目描述

本软件包包含astroML软件包的插件代码,该软件包可在http://github.com/astroML/astroML找到。

AstroML是基于numpy、scipy、scikit-learn和matplotlib构建的Python机器学习和数据挖掘模块,采用3-Clause BSD许可证分发。它包含一个不断增长的统计和机器学习例程库,用于在Python中分析天体数据,包括几个开放天体数据集的加载器,以及大量分析和可视化天体数据集的示例。

该项目始于2012年,由Jake VanderPlas发起,以配合Zeljko Ivezic、Andrew Connolly、Jacob VanderPlas和Alex Gray所著的《天文学中的统计学、数据挖掘和机器学习》一书。

核心和插件

该项目分为两个部分。核心 astroML 库仅使用 Python 编写,旨在为所有用户(即使是那些没有可工作的 C 或 Fortran 编译器的人)提供非常简单的安装方式。一个伴随库 astroML_addons 可以根据需要安装以提高某些算法的性能。在 astroML_addons 中的每个算法在核心 astroML 实现中都有一个纯 Python 对应物,但 astroML_addons 库包含更快且更高效的编译代码实现。此外,如果您在系统上安装了 astroML_addons,则核心 astroML 库将默认导入和使用这些更快的例程。

这种分割的原因是方便 Python 新手使用。如果系统上已经安装了先决条件,则核心 astroML 库可以轻松地安装在任何系统上。要安装 astroML_addons 库,则需要 C 编译器,但它也被设计为对更高级用户容易安装。下面“开发”部分有进一步的讨论。

安装

此软件包使用 distutils,这是安装 Python 模块的标准方式。在安装之前,请确保您的系统满足以下依赖项中的要求。

核心

要安装到您的家目录中的核心 astroML 软件包,请使用

pip install astroML

核心软件包是纯 Python,因此在大多数系统上安装应很直接。要从源安装,请参阅 http://github.com/astroML/

附加组件

astroML_addons 软件包的安装需要有效的 C/C++ 编译器。可以使用以下方式安装:

pip install astroML_addons

要从源安装,请使用

python setup_addons.py install

您可以使用以下方式指定任意安装目录:

python setup.py install --prefix='/some/path'

在 Linux/Unix 系统上全局安装

python setup.py build
sudo python setup.py install

依赖项

在 astroML 中有三个级别的依赖项。核心 依赖项是核心 astroML 软件包所需的。 附加组件 依赖项是性能 astroML_addons 所需的。 可选 依赖项是运行某些(但不是所有)示例脚本所需的。

核心依赖项

核心 astroML 软件包需要以下内容

  • Python 版本 2.6.x - 2.7.x(astroML 尚不支持 Python 3.x)

  • Numpy >= 1.4

  • Scipy >= 0.7

  • Scikit-learn >= 0.10

  • Matplotlib >= 0.99

  • PyFITS >= 3.0。PyFITS 是基于 cfitsio 的 Flexible Image Transport System (FITS) 文件的 Python 读取器。一些数据加载器需要 pyfits。

此配置与 2010 年 4 月的 Ubuntu 10.04 LTS 版本相匹配,增加了 scikit-learn。

要运行单元测试,您还需要 nose >= 0.10

附加组件依赖项

astroML_addons 中的快速代码需要一个有效的 C/C++ 编译器。

可选依赖项

一些示例脚本需要特定的或升级的软件包。这些要求列在特定脚本顶部

  • Scipy 版本 0.11 增加了一个稀疏图子模块。最小生成树示例需要 scipy >= 0.11

  • PyMC 提供了马尔可夫链蒙特卡洛算法的良好接口。几个 astroML 示例使用 pyMC 探索高维空间。这些示例是用 pymc 版本 2.2 编写的。

  • HEALPy 提供了 HEALPix 像素化方案的接口,以及快速球谐变换。

开发

本包旨在成为一个高质量天文代码的仓库,并鼓励提交新的程序。安装版本控制系统 Git 后,您可以使用以下方法从 GitHub 检出最新源代码:

git clone git://github.com/astroML/astroML.git

或者如果您有写入权限

git clone git@github.com:astroML/astroML.git

贡献

我们强烈鼓励贡献有用的天文相关代码:为了使 astroML 成为 python/astronomy 社区的相关工具,它需要随着研究领域的发展而发展。以下是贡献的一些指南

通用

任何贡献都应通过 github 拉取请求系统(更多信息请参阅 帮助页面)进行。提交给 astroML 的代码应符合 BSD 风格许可,并遵循 PEP8 风格指南

文档和示例

所有提交的代码都应遵循 Numpy 文档指南 进行文档化。这是 scipy 宇宙中许多包使用的统一文档风格。

此外,强烈建议创建示例脚本,展示该方法在天文数据集上的有用性(最好使用 astroML.datasets 中的加载器)。这些示例脚本位于主源代码库的 examples 子目录中。

附加代码

我们很早就决定将核心例程与高性能编译例程分开。这是为了确保核心包的安装尽可能简单(即不需要 C 编译器)。

鼓励向 astroML_addons 贡献高效的编译代码:在 python 宇宙中,常见算法的高效实现是其中最强大的功能之一。封装编译库的首选方法是使用 cython;其他选项(weave、SWIG 等)更难构建和维护。

目前,政策是 astroML_addons 中包含的任何高效算法都应在 astroML 中有一个重复的纯 python 实现,代码将选择如果可用则较快的例程。(有关如何实现此功能的示例,请参阅 astroML/periodogram.pylomb_scargle 函数的定义)。这项政策存在两个原因

  1. 它允许初学者用户拥有 astroML 的全部功能,而无需经历复杂的安装步骤的麻烦。

  2. 它具有教学目的:纯 python 实现通常比 C 或 cython 中的等效实现更容易阅读和理解。

  3. 它强制执行避免过早优化的良好编码实践。首先确保代码能正常工作(即在简单的 python 中编写)。然后创建一个在附加组件中的优化版本。

如果这项政策在将来特别麻烦,可能会重新审视。

作者

包作者

代码贡献者

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

astroML_addons-0.2.2.tar.gz (51.1 kB 查看哈希值)

上传时间

由以下支持