三白草

首页 » 常识 » 预防 » Python的常用库的数组定义及常用操作
TUhjnbcbe - 2021/4/16 23:25:00

Python支持的库非常多,这当然是它的一大优势,但是也会给我们实际应用中造成点小小的麻烦:每个库对于数据的定义和运算处理都不同,这就使得我们在写代码的时候经常会串掉,比如会一个手滑写成numpy.xarray,又或者是想将两个数组元素相加,却没注意到它们都是list(列表),写成了list1+list2,结果变成了两个列表的合并。。。

或许你会说,那我直接用一个库,比如就用numpy不就好了。但是我们在实际处理气象上常见的nc数据时,还是离不开xarray、pandas、netCDF4,这些常用库的。由于我自己也总是记混,经常debug到写过格式的情况,这里就索性把它们都写下来做一个备忘吧~

1、numpy库

importnumpyasnpa=[1,2,3]#创建数组b=np.array(a)#将a转为array格式c=np.ones([3,5],dtype=np.int)#创建数值为1的,维度为3×5的整形数组d=np.zeros([3,5],dtype=np.int)#创建数值为0的,维度为3×5的整形数e=np.full([3,5],5,dtype=np.int)#创建数值为5(该数值为人工指定)的,维度为3×5的整形f=np.eye(5)#创建维度为5的方阵g=np.random.rand(5,6,7)#创建shape为(5,6,7)的数组,数值范围在0-1之间的随机数h=np.random.uniform(0,,size=(5,6))#创建shape为(5,6)的数组,数值范围在0-之间的随机数i=np.random.randint(0,,size=(5,6))#创建shape为(5,6)的整形数组,数值范围在0-之间的随机整数j=np.arange(5,,10)#创建一个从5开始,间隔为10,结束于小于的等差数列k=np.linspace(5,,50)#创建50个在闭区间[5,]内均匀分布的值k2=np.expand_dims(c,axis=0)#在数组k的最左侧增加一个维度k3=np.expand_dims(c,axis=-1)#在数组k的最右侧增加一个维度k4=np.expand_dims(c,axis=2)#在数组k的index=2处增加一个维度k5=k%3#求除以3的余数np.sort(array_name)#数组整体排序np.sort(array_name,axis=0)#数组仅对行排序np.sort(array_name,axis=1)#数组仅对列排序l=c[:2,2:4].copy()#数组索引后复制。也可写作np.copy()np.unique(array_name)#提取唯一元素array_name.T#数组转置array_name.reshape(3,2,2)#改变数组形状,新shape的各维度相乘应与旧的相等,不想算的可以用-1表示array_name.resize(3,2,2)#改变数组形状,新shape的各维度相乘可以不与旧的相等,不足的补0np.where(condition,x,y)#条件运算,数组中符合条件condition的更改为数值x,不符合的改为yresult=np.amax(array_name,axis=0)#求矩阵中每一列的最大值。axis=1表示按照行来求。整个矩阵求最大值的话,不用谢axis参数np.amin(array_name)#求矩阵最小值。参数含义同np.amaxnp.mean(array_name,dtype=np.int)#求矩阵平均值。参数含义同np.amaxnp.std(array_name)#求矩阵方差。参数含义同np.amaxresult=np.vstack(v1,v2)#两个列数相同的矩阵v1和v2的拼接result=np.hstack(v1,v2)#两个行数相同的矩阵v1和v2的拼接result=np.append(array_name,[0,2])#末尾添加元素result=np.append(array_name,[[0,2,11]],axis=0)#最后一行添加一行result=np.append(array_name,[[0],[2],[11]],axis=1)#最后一列添加一列(注意添加元素格式)result=np.insert(array_name,1,[[11,12,10]],axis=0)#在索引位置为1的位置插入一行result=np.insert(array_name,1,[[11,12,10]],axis=1)##在索引位置为1的位置插入一列np.load(fname,dtype,

1
查看完整版本: Python的常用库的数组定义及常用操作