NumPy是Python中科学计算的基础软件包。
它是一个提供多了维数组对象,多种派生对象(如:掩码数组、矩阵)以及用于快速操作数组的函数及API;
它包括数学、逻辑、数组形状变换、排序、选择、I/O 、离散傅立叶变换、基本线性代数、基本统计运算、随机模拟等等。
2 Numpy数组
NumPy数组在创建时具有固定的大小, 更改ndarray的大小将创建一个新数组并删除原来的数组。
NumPy数组中的元素都需要具有相同的数据类型,因此在内存中的大小相同。
NumPy数组有助于对大量数据进行高级数学和其他类型的操作。
3 np基本操作
3.1 np常用数据类型
int 8/16/32/64
float 16/32/64
complex64/128 (64指实部虚部皆32位浮点数)
object(该类型与MATLAB cell相似)
3.2 np数组属性
ndim/ shape/ size/ dtype/ itemsize/ real/ imag
秩/n行m列/元素总个数/ 元素类型/ 元素大小(字节)/元素实部/ 元素虚部
3.3 创建np数组
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| np.array(list/tuple,dtype)
np.arange(min,max,step,dtype)
np.empty(shape,dtype) np.zeros(shape,dtype) np.ones(shape,dtype)
np.random.rand(n) np.random.randn(n) np.random.randint(low, high, size) np.random.random_integers(low, high, size) np.random.shuffle(a) np.random.permutation(a)
|
3.4 np切片与索引
1 2 3 4 5 6 7 8 9 10 11 12
| a[i,j]
a[i:j] a[i:j:step]
a[i,:]/a[:,j]
a[i:]
a[[i1,i2,...],[j1,j2,...]]
a[T/F]
|
3.5 np数组操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| np.reshape(a,[m,n])
np.transpose(a)/ a.T
np.concatenate((a1,a2,...),axis=0/1) np.hstack((a1,a2,...)) np.vstack((a1,a2,...))
np.clip(a,min,max)
np.split(a,num,axis=0/1) np.array_split(a,num,axis=0/1)
np.sort(a,axis=0/1,kind) np.argsort(a)
|
3.6 np统计/算术函数
1 2 3 4 5 6 7
| np.amax/amin/median/mean/var/ptp(def:max-min)
np.sin/cos/tan/arcsin/arccos/arctan np.degree
np.around(a,decimals)/floor/ceil
|
3.7 np线性代数
1 2 3 4 5 6 7 8
| np.dot(A,B)
np.vdot(A,B)
np.linalg.det()
np.linalg.inv()
|
3.8 np输入输出
1 2 3 4 5 6 7 8 9
| numpy.save(file, arr)
numpy.savez(file, *args, **kwds)
np.load(file)
np.loadtxt(FILENAME, dtype=int, delimiter=' ') np.savetxt(FILENAME, a, fmt="%d", delimiter=",")
|
参考资料
Numpy 中文文档
莫烦Numpy&pandas讲解
菜鸟教程