前言
Numpy是一个开源的Python科学计算库,它是python科学计算库的基础库,许多其他著名的科学计算库如Pandas,Scikit-learn等都要用到Numpy库的一些功能。
本文主要内容如下:
Numpy数组对象创建ndarray数组Numpy的数值类型ndarray数组的属性ndarray数组的切片和索引处理数组形状数组的类型转换numpy常用统计函数数组的广播
1 Numpy数组对象
Numpy中的多维数组称为ndarray,这是Numpy中最常见的数组对象。ndarray对象通常包含两个部分:
ndarray数据本身描述数据的元数据
Numpy数组的优势
Numpy数组通常是由相同种类的元素组成的,即数组中的数据项的类型一致。这样有一个好处,由于知道数组元素的类型相同,所以能快速确定存储数据所需空间的大小。Numpy数组能够运用向量化运算来处理整个数组,速度较快;而Python的列表则通常需要借助循环语句遍历列表,运行效率相对来说要差。Numpy使用了优化过的C API,运算速度较快
关于向量化和标量化运算,对比下面的参考例子就可以看出差异
使用python的list进行循环遍历运算
def pySum(): a = list(range(10000)) b = list(range(10000)) c = [] for i in range(len(a)): c.append(a[i]**2 + b[i]**2) return c
%timeit pySum()
10 loops, best of 3: 49.4 ms per loop
使用numpy进行向量化运算
import numpy as np def npSum(): a = np.arange(10000) b = np.arange(10000) c = a**2 + b**2 return c
%timeit npSum()
The slowest run took 262.56 times longer than the fastest. This could mean that an intermediate result is being cached. 1000 loo