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