NumPy 是什么?
NumPy 是一个 Python 的基础包, 用与科学计算. 它提供了很多数学计算的功能, 其核心是多维数组对象 (multidimensional array objects). 提供的方法包括并不限于线性代数, 数理逻辑, 离散傅里叶变换, 随机模拟等.
NumPy 包的核心是 ndarray
对象. ndarray
是指同类型 (homogeneous) 的 n dimensional array. 其中的核心算法均是编译型的, 目的是为了提高性能. 在 NumPy 的 array 与标准 Python 的序列之间存在一些不同:
- NumPy 的数组是静态数据, 不同于 Python 的动态数组. 在修改
ndarray
尺寸后, 会创建一个新数组, 并删除原来的数组. - NumPy 的数组元素必须是同一个类型. 这样在内存中可以保证其尺寸的一致性. 这里有一个特例, 就是 object 类型的元素.
- NumPy 可以使用少的代码, 实现复杂的高性能的计算.
- 越来越多的库开始使用 NumPy. 内置的序列不足以胜任.
内置序列的数学运算需要基于索引来处理每一个元素. 但是 NumPy 直接对 ndarray
进行操作, 实际上会处理每个元素.