NumPy是一个广泛适用的Python数据处理库,pandas, OpenCV等库都基于numpy。同时,在PyTorch、TensorFlow、Keras等深度许欸小框架中,了解numpy将显著提高数据共享和处理能力,甚至无需过多更改就可以在GPU运行计算。
n维数组是NumPy的核心概念,这样的好处,尽管一维和而为数组的处理方式有些差异,但多数不同维数组的操作是一样的。本文将对以下三个部分展开介绍:
向量——一维数组
矩阵——二维数组
3维及更高维数组
本文受JayAlammar的文章“ A Visual Intro to NumPy”的启发,并对其做了更详细丰富的介绍。
numpy数组 vs. Python列表
乍看上去,NumPy数组与Python列表极其相似。它们都用来装载数据,都能够快速添加或获取元素,插入和移除元素则比较慢。
当然相比python列表,numpy数组可以直接进行算术运算:
除此之外,numpy数组还具有以下特点:
更紧凑,高维时尤为明显
向量化后运算速度比列表更快
在末尾添加元素时不如列表高效
元素类型一般比较固定