NumPy线性代数函数依赖于BLAS和LAPACK来提供标准线性代数算法的高效低级实现。 这些库可以由NumPy本身使用其参考实现子集的C版本提供, 但如果可能,最好是利用专用处理器功能的高度优化的库。 这样的库的例子是OpenBLASopen in new window、MKL(TM)和ATLAS。因为这些库是多线程和处理器相关的, 所以可能需要环境变量和外部包(如threadpoolctlopen in new window)来控制线程数量或指定处理器体系结构。
这在文档中通过输入参数规范(如 a : (..., M, M) array_like )表示。 这意味着,例如,如果给定输入数组 a.shape == (N, M, M) ,则将其解释为N个矩阵的“堆栈”, 每个矩阵的大小为M×M。类似的规范也适用于返回值, 例如行列式 det : (...) 。并且在这种情况下将返回形状 det(a).shape == (N,) 的数组。 这推广到对高维数组的线性代数操作:多维数组的最后1或2维被解释为向量或矩阵,视每个操作而定。