numpy相关的numpy数组形状>>>np.array([1,2,3,4])#Rank1arrayarray([1,2,3,4])>>>np.array([[1],[2],[3],[4]])#Rank2array(Matrix)array([[1],[2],[3],[4]])>>>np.arange(16).reshape((2,2,4))#Rank3arrayarray([[[0,1,2,3],[4,5,6,7]],[[8,9,10,11],[12,13,14,15]]])>>>M=np.arange(16).reshape((2,2,4))#也可以先展平再reshape>>>M.size#元素个数16>>>M.shape#维度(2,2,4)>>>np.array([[1],[2],[3],[4]]).shape#Rank2arrayshape(4,1)>>>np.transpose(M)#Rank3arraytransposearray([[[0,8],[4,12]],[[1,9],[5,13]],[[2,10],[6,14]],[[3,11],[7,15]]])numpy基础>>>importnumpyasnp>>>l=np.array([2,3,4,232,9])>>>np.mean(l),np.median(l),sum(l)(50.0,4.0,250)>>>np.logsPACE(NP.LOG10(10),NP.LOG10(100),11)阵列([10.,12.58925412,15.84893192,19.95262315,25.11886432,39.6227766,39.81071706,79.11111111111111111.111111111.1111111,1189.111111111,.linspace(10,100,11)array([10.,19.,28.,37.,46.,55.,64.,73.,82.,91.,100.])numpy读取csv(pandaIt会更方便)data=np.genfromtxt(path_to_csv,dtype=float,delimiter=',',names=True)np.where#查找索引np.unique#去重libreoffice转换csv/Applications/LibreOffice.app/Contents/MacOS/soffice--headless--convert-tocsv*.xlsx--outdir./csv/plot将pylab导入plimportnumpyasnpdata=np.random.normal(size=10000)pl.hist(data,bins=np.logspace(np.log10(0.1),np.log10(1.0),50))pl.gca().set_xscale("log")pl.show()pandas相关pandas.concat#concatdf.loc[:,'role_id']#allindex,with'role_id'columndf.loc(N)#selectNindexdf.iloc[:,1:3]#allindex,1to3columndf.iloc[:,1:-1]df['字段'].map(lambdax:len(x)).max()#api—seqs每个元素(list)中奇数项的最大值px['api_seqs'].apply(lambdax:max(x[0::2])).max()#occurrencespx.loc[:,'role_id'].value_counts()#索引重置px.reset_index()px.loc[px.ratio>0.8,'role_id'].value_counts().reset_index(name='cnt').rename(columns={'index':'role_id'})#多条件选择器(实际上是作为行轴的布尔选择器)。#选择器使用了各种bool类型的操作,包括`&|~`px.loc[(px['cnn_banned']==1)&(px['crazy_click']==1)]参考官方文档pandas.DataFrame.loc其实px.loc接收多种类型的参数,这使得它功能强大但理解起来有点麻烦:一个独立的标签。一组独立的标签。slice切片数据(与python通常的slice不一致,它是一个包含开始和结束标记的闭区间)。与指定axis轴长度相同的bool类型数组。将Series或DataFrame作为参数并返回上述(4)个有效参数之一的函数对象。索引和选择数据是一个很重要的概念,后面会详细解释。
