【数据处理与分析】numpy快速入门

参考教程:点这里


目录

numpy的属性

array的创建

numpy基础运算

numpy索引 

array合并 

array分割 

numpy的赋值

END 


numpy的属性

维度:a.ndim

行数和列数:a.shape

元素总个数:a.size

 

array的创建

列表转矩阵:a = np.array( [ [1,2,3] , [2,3,4] ] )

指定dtype:a = np.array([2,3,4],dtype=np.int)   【np.int、np.int32、np.float、np.float32】

全0数组:a = np.zeros((3,4))   【3行4列】

全1数组:a = np.ones((3,4),dtype = np.int)    【3行4列】

全空(接近0的数):a = np.empty((3,4))    【3行4列】

【数据处理与分析】numpy快速入门

 创建连续数组:a = np.arange(10,20,2)  # 10-19 的数据,2步长【默认步长为1,不含右边数】

【数据处理与分析】numpy快速入门

改变数据的形状:a = np.arange(12).reshape((3,4))    【3行4列,0到11】

创建线段型数据:np.linspace(1,10,4)     【分成1到10的4个数,1 4 7 10】

 

numpy基础运算

【数据处理与分析】numpy快速入门

加减乘:a+b  a-b  a*b 【对应元素乘】

乘方:a**b

三角函数:np.sin(a)  

矩阵乘法:np.dot(a, b) 或 a.dot(b)

2行4列的随机矩阵:a=np.random.random((2,4))

矩阵所有元素之和:np.sum(a)

矩阵所有元素最小值:np.min(a)

矩阵所有元素最大值:np.max(a)

每行的元素之和:np.sum(a,axis=1)  【axis=1以行为查找单元,axis=0以列为查找单元】

每列最小值:np.min(a,axis=0)   【axis=1以行为查找单元,axis=0以列为查找单元】

每行最大值:np.max(a,axis=1)    【axis=1以行为查找单元,axis=0以列为查找单元】

矩阵所有元素最小值的索引(位置):np.argmin(a)

矩阵所有元素最大值的索引(位置):np.argmax(a)

矩阵所有元素的均值:np.mean(a)  或  np.average(a)  或 a.mean() 

矩阵所有元素的中位数:np.median()

元素累加矩阵:np.cunsum(a)   【2,2+3,2+3+4,...】 

元素累差矩阵:np.diff(a)  【后减前:[ 3-2,4-3,5-4],[ ....】

【数据处理与分析】numpy快速入门

分割非0元素的行列坐标:np.nonzero(b)

【数据处理与分析】numpy快速入门

矩阵元素从小到大排序:np.sort(A)

矩阵转置:np.transpose(A) 或 A.T

将矩阵太大/小的元素转为最值:np.clip(A,5,9)  【小于5的转成5,大于9的转成9】

 

numpy索引 

一维索引:a[3]   【矩阵a的第3个元素或第3行,从0开始计】

二维索引:a[0][2]  或 a[0, 2] 【矩阵a第0行第2列的元素】

切片操作:a[1, 1:3]   【矩阵a第1行第1、2列(不含第3列)的元素】

打印每行:for row in a

打印每列:for col in a.T  【转置一下】

【数据处理与分析】numpy快速入门【数据处理与分析】numpy快速入门【数据处理与分析】numpy快速入门

将多维矩阵展开成1行的数列:a.flatten()

对应的迭代器flat:for item in a.flat:  【如上图3】

 

array合并 

上下合并(vertical stack):np.vstack((A,B))

左右合并(horizontal stack):np.hstack((A,B)) 

非标准矩阵的转置(A = np.array([1,1,1]) ,3个元素的array):A[np.newaxis,:] 【[[1 1 1]],1行3列】

非标准矩阵的转置(A = np.array([1,1,1]),3个元素的array ):A[:,np.newaxis] 【[[1]  [1]  [1]],3行1列】

多个矩阵或序列的合并:np.concatenate((A,B,B,A),axis=0)  【0是纵向打印,1是横向打印】

【数据处理与分析】numpy快速入门

 

array分割 

纵向分割(axis=0):np.split(A, 2, axis=1)  【第2个参数2代表分成2个array】

【数据处理与分析】numpy快速入门【数据处理与分析】numpy快速入门

横向分割(axis=1):np.split(A, 3, axis=0) 【第2个参数3代表分成3个array】

  【数据处理与分析】numpy快速入门

不等量的分割:np.array_split(A, 2, axis=0)

【数据处理与分析】numpy快速入门

 

numpy的赋值

= 赋值 指向的同一内存地址:a=b  【a改b也改】

copy赋值 指向不同内存地址:b = a.copy()   【a改b不动】

 

END