numpy
-
numpy的四个属性:
ndim 维度 ;shape ;size;dtype 类型 -
ndarray的类型优先级:str>float>int(类型一致,不一致按照类型优先级统一类型)
-
numpy的routines函数
numpy.ones() 创建全是1的矩阵
numpy.zeros() 创建全是0的矩阵
numpy.eye() 创建单位矩阵
numpy.full(fill_value=,)创建全是fill_value的矩阵numpy.linspace(start,end,num=)在一个区间范围内分num份
numpy.arange(start,end,step)在一区区间内,按step分多少份numpy.random.random()
numpy.random.randint()
numpy.random.randn()标准正态分布
numpy.random.normal()正态分布 -
ndarray变形(reshape)
-
numpy级联:
numpy.concatenate((n1,n2),axis=)
numpy.hstack()
numpy.vstack() -
切分(split)
numpy.split(n,num,axis=)#num是切成几份,必须能整除才行,num也可以是一个元组,按照里面的元组索引进行切分
numpy.hsplit(n,num)
numpy.vsplit(n,num) -
副本(深拷贝):n2=n1.copy()
-
聚合操作:
numpy.sum()求和
numpy.mean()平均值
numpy.std()标准差
numpy.var()方差
numpy.min()最小值
numpy.max()最大值
numpy.median()中值
numpy.sqrt()开方
numpy.power()幂
numpy.all()
numpy.any()
numpy.argmin()有arg返回的是索引
numpy.argmax()
numpy.argsort() -
numpy中的数学运算(加减符合广播机制)
加+
减-
积dot(np.dot(n1,n2))
pandas(series,DataFrame)
Series
-
Series的属性:
shape,size,index,values -
Series的创建:
用dcit创建:
s=Series(data={‘s’:1,‘f’:4})
用ndarray创建:(当Series改变时,ndarray中的值也会改变)
s=Series(data=np.array([2,2,4])) -
Series高级用法
去除两个series的nan:n1.add(n2,fill_name=0)
转为Datatime:pd.to_datatime(Series)
在DataFrame中,使按某一列排序:d.iloc[d[‘yingyu’].argsort()]
去重:Series.unique()
DataFrame
-
DataFrame的每一列就是一个Series
-
DataFrame的创建:
DataFrame(data=,index=,columns=) -
显式索引(.loc)
-
隐式索引(loc)
-
处理丢失的数据(None,np.nan)都是NaN
判断是否为丢失数据:data.isnull()是就返回True;data.notnull()不是NaN就返回True
过滤丢失的数据:data.dropna()默认删除一行
填充丢失数据:data.fillna(value=0)(或者写method的属性有:bfill,backfill,pad,ffill) -
创建多层索引(隐式构造,显式构造)
一般使用显式构造(pd.MultiIndex):arrays,tuples,product
product:
index=pd.MultiIndex.from_product([‘一般’,‘厉害’],[‘ddd’,‘dda’,‘eee’]) -
多层索引查找
显式查找:data.loc[(行索引,行索引),(列索引,列索引)] -
堆(stack)
stack 将列索引改为行索引
unstack 将行索引转为列索引 -
拼接操作
级联:(pd.concat(()),data.append())
合并:(pd.merge()) -
DataFrame的高级用法
data.drop(columns=‘xxx’,inplace=True) 删除一列数据 -
建立新索引
data.set_index(‘在头部索引中的字段’,inplace=True) -
排序:
data.sort_values(by=‘columns’) 根据列的数据进行排序 -
条件查询:
cond = data[‘kk’]==‘Pk’ 条件成立,返回Ture
data.loc[cond,‘columns’]=‘psdsd’ 对返回True的数据进行修改
处理数据
-
duplicate(去除重复的数据)
data.duplicated() 不是第一次出现的返回False
删除:
data.drop_duplicates(keep=‘last’,subset[‘a’,‘d’])
参数说明,keep保留重复的最后一条,对哪些字段进行去重
取反:~ -
映射:replace(maping)替换,map(maping)修改,新增,rename(maping)修改头部索引
映射首先要定义一个字典mapping={1:值} -
异常值检测:describe
步骤:1.定义异常值的标准;2.把这个标准写成写成条件;3.根据条件取反(~) -
取样(take([]))(取到的是一行数据)
随机取样:
无法回抽样:data.take(np.random.randint(0,4,4))
又返回抽样:data.take(np.random.permutation(list(range(10))))
数据聚合
分组(groupby);聚合(sum),合并(merge)
- d.groupby(level=0).groups 分组(参数用level,或者by只能存在一个)
- 分组聚合:
data.groupby(by=‘索引’)[[‘价格’,‘体重’]].sum() 根据头索引分组对每行数据进行分组 - 合并(merge)
pd.merge(df1,df2,left_on=,right_on=,right_index=,duffixes=[’’,’’])
还有参数:ignore_index=,how=’’ - 其他函数:
data.add_predix(‘ma_’)(添加前缀)
data.add_sufdix(’_ma’)(添加后缀) - 数据加载
- 后面还有很多,看下面的xmind也很详细(因为写了太多时间了)