无论您是参加Kaggle竞赛还是开发深度学习应用程序,第一步始终是数据分析。本文介绍8种使用Python进行数据分析的方法,不仅可以提高运行效率,还可以让代码更加“优美”。当一行代码定义List来定义某种列表时,写一个For循环太麻烦了。幸运的是,Python有一种内置的方法可以在一行代码中解决这个问题。下面是使用For循环创建列表与使用一行代码创建列表的比较。x=[1,2,3,4]out=[]foriteminx:out.append(item**2)print(out)[1,4,9,16]#vs.x=[1,2,3,4]out=[item**2foriteminx]print(out)[1,4,9,16]Lambda表达式是否厌倦了定义不常使用的函数?Lambda表达式是您的救星!Lambda表达式用于在Python中创建小型、一次性和匿名的函数对象,这些对象会为您创建一个函数。lambda表达式的基本语法是:lambdaarguments:expression注意!只要有lambda表达式,常规函数可以做的任何事情都可以完成。你可以从下面的例子中感受到lambda表达式的强大:double=lambdax:x*2print(double(5))10Map和Filter一旦你掌握了lambda表达式,学会将它们与Map和Filter函数一起使用,更强大的函数可以得以实现。具体来说,map通过对列表中的每个元素执行一些操作并将其转换为新列表来工作。在这种情况下,它遍历每个元素并将其乘以2,形成新列表。(注意!list()函数只是将输出转换为列表类型)#Mapseq=[1,2,3,4,5]result=list(map(lambdavar:var*2,seq))print(result)[2,4,6,8,10]Filter函数接受一个列表和一个规则,就像一个映射,但它通过将每个元素与布尔过滤规则进行比较来返回原始列表的一个子集。#Filterseq=[1,2,3,4,5]result=list(filter(lambdax:x>2,seq))print(result)[3,4,5]Arange和LinspaceArange返回给定的步长等。可怜的名单。它的三个参数start、stop、step分别代表起始值、结束值和步长,请注意!停止点是一个“截止”值,因此它不会包含在数组输出中。#np.arange(start,stop,step)np.arange(3,7,2)array([3,5])Linspace和Arrange非常相似,但略有不同。Linspace将区间按指定的数均分,所以给定区间的起点和终点,以及均分的点数num,linspace将返回一个NumPy数组。这对于数据可视化和绘图时声明轴特别有用。#np.linspace(start,stop,num)np.linspace(2.0,3.0,num=5)array([2.0,2.25,2.5,2.75,3.0]Axis代表什么?在Pandas中,删除一列或者在NumPy中matrix求和的时候,可能会遇到Axis,我们以删除一列(行)为例:df.drop('ColumnA',axis=1)df.drop('RowA',axis=0)processColumns,setAxisto1,andifyouwanttoprocessrows,setitto0.Butwhy?回想一下Pandas中的形状。df.shape(#ofRows,#ofColumns)从PandasDataFrame调用形状属性返回A第一个值代表行数,第二个值代表列数的元组,如果要在Python中对其进行索引,行数下标0,列数下标1,很像我们声明的方式轴值。Concat、Merge和Join如果您熟悉SQL,这些概念对您来说可能更容易。无论如何,这些功能本质上是一种以特定方式组合DataFrame的方法。跟踪哪个在哪个时间最适合可能很困难,所以让我们回顾一下。Concat允许用户在表格下方或旁边附加一个或多个DataFrame(取决于您如何定义轴)。Merge合并多个DataFrames指定具有相同主键(Key)的行。Join与Merge一样,合并两个DataFrames。但是它不是按指定的主键合并,而是根据相同的列或行名称进行合并。PandasApplyApply是为Pandas系列设计的。如果您不熟悉Series,请将其视为类似Numpy的数组。Apply将函数应用于沿指定轴的每个元素。使用Apply,您可以在不循环的情况下格式化和操作DataFrame列(这是一个Series)的值,??这非常有用!df=pd.DataFrame([[4,9],]*3,columns=['A','B'])dfAB049149249df.apply(np.sqrt)AB02.03.012.03.022.03.0df.apply(np.sum,axis=0)A12B27df.apply(np.sum,axis=1)013113213数据透视表如果您熟悉MicrosoftExcel,那么您可能听说过数据透视表。Pandas内置的pivot_table函数以DataFrame的形式创建了一个电子表格样式的数据透视表,可以帮助我们快速查看某些列的数据。下面举几个例子:非常智能的根据“Manager”对数据进行分组:pd.pivot_table(df,index=["Manager","Rep"])或者过滤属性值pd.pivot_table(df,index=["Manager","Rep"],values=["Price"])小结希望以上的描述能帮助大家发现Python中一些有用的函数和概念。
