NumPy 的范围#

在这里,我们描述了 NumPy 开发范围内 N 维数组计算的各个方面。这不是 NumPy 应该追求的目标的理想化定义,而是反映了现状——我们已决定继续支持的领域,至少在目前是这样。

  • CPU 上的内存中、N 维、同构类型(单个指针 + 步长)数组

    • 支持各种数据类型

    • 不包括 GPU 等专用硬件

    • 但支持各种 CPU(例如 ARM、PowerX)

  • N 维数组的高级 API

  • Python API 和 C API 用于 ndarray 的方法和属性。

  • 其他N 维数组的专用类型或用途

    • 掩码数组

    • 结构化数组(非正式地称为记录数组)

    • 内存映射数组

  • 历史上,NumPy 包含以下支持科学计算的基本功能。我们打算继续支持(但不扩展)当前包含的内容

    • 线性代数

    • 快速傅里叶变换和窗口化

    • 伪随机数生成器

    • 多项式拟合

  • NumPy 为科学 Python 生态系统中的其他包提供了一些基础设施

    • numpy.distutils(用于 C++、Fortran、BLAS/LAPACK 和其他相关科学计算库的构建支持)

    • f2py(生成 Fortran 代码的绑定)

    • 测试实用程序

  • 速度:我们认真对待性能问题,并力求在大型数组上执行操作时具有与原生 C 代码相似的性能。也就是说,在发生冲突时,维护和可移植性优先于性能。我们力求防止出现回归(例如,通过 asv)。