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也很詳細(因爲寫了太多時間了)