一、numpy 数组对象(numpy.ndarray)
ndarray 是一个多维的数组类:
实际数据
描述信息
创建对象、索引、切片:
1 #python 2 3 import numpy as np 4 5 # 创建ndarray 对象 6 a = np.arange(6) 7 print(a.shape) 8 print(a.dtype) 9 type(a) 10 11 b = np.array([1,1,2,4,5,6,0,7]) 12 13 c = np.array([np.arange(3),np.arange(3)]) 14 print(c.shape) 15 print(c.dtype) 16 17 d = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[0,4,6]]] , dtype=np.float32) 18 print(d.shape) 19 print(d.dtype) 20 21 e = np.zeros(5) 22 print(e.shape) 23 print(e.dtype) #dtype('float64') 24 25 f = np.ones([2,6],dtype=np.int64) 26 print(f.shape) #(2, 6) 27 print(f.dtype) 28 29 30 #---- 索引和切片 31 a = np.arange(9) 32 a[3:7] # array([3, 4, 5, 6]) 包含左边的索引,不包含右边的索引 33 a[0:7:2] #array([0, 2, 4, 6]) 以2为步长 34 a[7::-1] #array([7, 6, 5, 4, 3, 2, 1, 0]) 以-1为步长 35 a[7:0:-1] #array([7, 6, 5, 4, 3, 2, 1]) 36 37 b = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[0,4,6]]]) 38 b[0,1:,:]
数据类型
np.sctypeDict.keys() 查看完整的数据类型列表
dtype.itemsize 属性可以查看占用数据类型字节数,f.dtype.itemsize
二、ndarray一些常用的成员函数(reshape、ravel、flatten、transpose、resize)
ravel 和 flatten:将数组展平, flatten 会申请内存保存结果,ravel 返回视图
reshape 和 resize : 改变数组维度,resize 会直接修改所操作的数组
transpose: 转置矩阵
1 # python 2 3 import numpy as np 4 b = np.arange(24).reshape(2,3,4) 5 print(b) 6 7 print(b.flatten()) 8 9 b.shape = (6,4) # 可以直接改变维度 10 11 b.transpose() 12 b.resize((2,12)) 13 14
三、数组组合、分割
1 import numpy as np 2 3 # ----- 组合 np.concatenate 更加灵活 4 a = np.arange(9).reshape(3,3) 5 6 b = a**2 7 8 # 水平组合 9 c = np.hstack((a,b)) 10 c2 = np.concatenate((a,b),axis=1) 11 12 # 垂直组合 13 d = np.vstack((a,b)) 14 d2 = np.concatenate((a,b),axis=0) 15 print(d2) 16 17 # 深度组合 18 e = np.dstack((a,b)) 19 20 #----- 分割 np.split() 更加灵活 21 a = np.array([[1,4,6],[2,4,12],[3,9,22]]) 22 print(a) 23 24 # 分割 25 print( np.split(a,3,axis=0) ) 26 print( np.split(a,3,axis=1) )