NumPy 的范围#

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

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

    • 支持多种数据类型

    • 非 GPU 等专用硬件

    • 但是,确实支持广泛的 CPU(例如 ARM、PowerX)

  • N 维数组的更高级别 API

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

  • N 维数组的其他特殊类型或用途:

    • 屏蔽数组

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

    • 内存映射数组

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

    • 线性代数

    • 快速傅立叶变换和加窗

    • 伪随机数生成器

    • 多项式拟合

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

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

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

    • 测试实用程序

  • 速度:我们认真对待性能问题,旨在以与本机 C 代码类似的性能在大型数组上执行操作。也就是说,当出现冲突时,维护和可移植性优先于性能。我们的目标是尽可能防止回归(例如,通过 asv)。