python之numpy之数组基本操作
一、数据转置
t = np.arange(18).reshape(3,6) print(t) print(t.transpose())#转置命令 print(t.swapaxes(1,0)) print(t.T)
二、数据切片与索引
#numpy的索引与切片 print(t[1]) #第一行 print(t[:,2])#第二列 print(t[1:2]) #第一二行 print(t[:,2:3])#第2.3列 print(t[1,2])# 第1行,2列的数
三、修改数值
#修改数组的数值 t[:,2:3] = 1 #第2列 print(t) #对t中元素进行布尔索引 print(t<11) #将t中小于10的数字,全部替换为1 t[t<10]=1 print(t)
四、三元运算符与clip裁剪
#numpy中的三元运算符号 t= np.arange(24).reshape(4,6) print(t) np.where(t<10,0,10) #小于10为10,其他均为10 #numpy中的clip(裁剪) print(t) print(t.clip(15,18)) #小于15的,全部修改为15,大于18的全部修改为18
五、数据类型简介及注意事项
#numpy中的NAN与inf简介 #NAN:不是一个数字 #inf:表示无穷 #如何表示NAN与inf,均为浮点型 a=np.inf print(type(a)) a1 = np.nan print(type(a1)) #nan中的注意问题 # 1.两个nan不等 print(np.nan == np.nan) print(np.nan!=np.nan) #利用nan的性质,判断数组中nan的个数 t = np.array([1,2,np.nan]) print(np.count_nonzero(t!=t)) #把t中的nan项替换为0值,nan与任何值计算都是nan. t[np.isnan(t)]= 0 print(t) #全部替换为0后,替换之前的平均值如果大于0,替换之后的均值肯定会变小, #所以更一般的方式是把缺失的数值替换为均值(中值)或者是直接删除有缺失值的一行
六、常用统计函数
numpy的常用的统计函数 求和:t.sum(axis=None) 均值:t.mean(a,axis=None) 受离群点的影响较大 中值:np.median(t,axis=None) 最大值:t.max(axis=None) 最小值:t.min(axis=None) 极值:np.ptp(t,axis=None) 即最大值和最小值只差 标准差:t.std(axis=None)当指定axis时候,返回对应维度上的数值
七、数据拼接,行列交换
#数组的内接与拼接,相同维度。数据拼接时,需要保持系列间的含义 import numpy as np t1 = np.arange(10).reshape(2,5) t2 = np.arange(10,20).reshape(2,5) #竖直拼接 t3 = np.vstack((t1,t2)) print(t3) #水平拼接 t4 = np.hstack((t1,t2)) print(t4) #数组的行列交换 t = np.arange(12,24).reshape(3,4) #行交换 t[[1,2],:] = t[[2,1],:] print(t) #数组列交换 t[:,[1,3]] = t[:,[3,1]] print(t) #numpy其他好用的方法 #获得最大值,最小值位置 a = np.arange(10).reshape(2,5) print(a) print(np.argmax(a,axis=0)) print(np.argmin(a,axis=1)) #创立一个全为0的数组 print(np.zeros((3,4))) #创建一个全为1的数组 print(np.ones((3,4))) #创建一个对角线为1的正方形数组 print(np.eye(3))
#numpy中的注意事项
# a=b 完全不复制,a和b相互影响
# a = b[:],视图的操作,一种切片,会创建新的对象a,但是a的数据完全由b保管,他们两个的数据变化是一致的,
# a = b.copy(),复制,a和b互不影响

浙公网安备 33010602011771号