NumPy 的范围#
在这里,我们描述了 NumPy 开发范围内的 Nd 数组计算的各个方面。这并不是NumPy 目标的理想定义,而是反映了现状——我们决定继续支持的领域,至少目前是这样。
CPU 上的内存中 N 维同构类型(单指针 + 跨步)数组
支持多种数据类型
非 GPU 等专用硬件
但是,确实支持广泛的 CPU(例如 ARM、PowerX)
N 维数组的更高级别 API
NumPy 是Python 中数组 API 的事实标准
元素的索引和快速迭代 (ufunc)
与其他数据容器实现的互操作协议(例如 __array_ufunc__ 和 __array_function__。
ndarray 的方法和属性的Python API 和 C API 。
N 维数组的其他特殊类型或用途:
屏蔽数组
结构化数组(非正式称为记录数组)
内存映射数组
从历史上看,NumPy 包含以下支持科学计算的基本功能。我们打算继续支持(但不扩展)当前包含的内容:
线性代数
快速傅立叶变换和加窗
伪随机数生成器
多项式拟合
NumPy为科学 Python 生态系统中的其他包提供了一些基础设施:
numpy.distutils(构建对 C++、Fortran、BLAS/LAPACK 和其他科学计算相关库的支持)
f2py(生成 Fortran 代码的绑定)
测试实用程序
速度:我们认真对待性能问题,旨在以与本机 C 代码类似的性能在大型数组上执行操作。也就是说,当出现冲突时,维护和可移植性优先于性能。我们的目标是尽可能防止回归(例如,通过 asv)。