第二章ndarray数组
2.1 NumPy的数组
NumPy的核心功能之一是定义了多维数组ndarray对象,另外一个核心功能是围绕多维数组提供功能强大的运算与处理方法。那么NumPy的数组与Python程序中普通的数组有什么区别呢?
NumPy数组在创建时具有固定的大小,与Python的原生数组对象(可以动态增长)不同。 更改ndarray的大小可能会创建一个新数组并删除原来的数组。在某些情况下,数组可能不能修改。
NumPy数组中的元素都需要具有相同的数据类型,因此在内存中的大小相同。
NumPy数组有助于对大量数据进行高级数学和其他类型的操作。 通常,这些操作的执行效率更高,比使用Python原生数组的代码更少。
越来越多的基于Python的科学和数学软件包使用NumPy数组; 虽然这些工具通常都支持Python的原生数组作为参数,但它们在处理之前会还是会将输入的数组转换为NumPy的数组,而且也通常输出为NumPy数组。
numpy内置了并行运算功能,当系统有多个核心时,做某种计算时,numpy会自动做并行计算。Numpy底层使用C语言编写,内部解除了GIL(全局解释器锁),其对数组的操作速度不受Python解释器的限制,效率远高于纯Python代码。