NumPy是一个Python数据处理库。pandas, OpenCV等库都基于numpy。NumPy的核心概念是n维数组。
1. Numpy数组 VS Python列表
1.1 直接算术运算。
## 1维计算
a = [1,2,3]
[p**2 for p in a]
np.array([1,2,3]) ** 2
## 2维计算
a = [1,2,3]
b = [4,5,6]
[p * q for p,q in zip(a, b)]
np.array([1,2,3]) * np.array([4,5,6])
1.2 性能对比
- 向量化后运算速度比列表更快
- 在末尾添加元素时不如列表高效
其中,O(N)表示完成操作所需的时间与数组大小成正比(请见 Big-O Cheat Sheet),O(1)表示操作时间与数组大小无关(详见Time Complexity)。
【参考资料】