当前位置: 首页 > 科技观察

12个Numpy和Pandas高效技巧,让数据分析更简单

时间:2023-03-17 14:56:09 科技观察

本文为您分享12个Numpy和Pandas函数,这些高效函数让数据分析更简单方便。最后,读者还可以在GitHub项目中找到本文所用代码的JupyterNotebook。项目地址:https://github.com/kunaldhariwal/12-Amazing-Pandas-NumPy-FunctionsNumpy的6个高效函数先从Numpy说起。Numpy是一个用于科学计算的Python语言扩展包,通常包括强大的N维数组对象、复杂函数、集成C/C++和Fortran代码的工具,以及有用的线性代数、傅里叶变换和随机数生成功能。除了上述明显的用途之外,Numpy还可以用作通用数据的高效多维容器,定义任何数据类型。这使Numpy能够与各种数据库无缝且快速地集成。接下来对这6个Numpy函数一一进行分析。1.argpartition()在argpartition()的帮助下,Numpy可以找到N个最大值的索引,并将找到的索引输出。然后我们根据需要对值进行排序。x=np.array([12,10,12,0,6,8,9,1,16,4,6,0])index_val=np.argpartition(x,-4)[-4:]index_valarray([1,8,2,0],dtype=int64)np.sort(x[index_val])array([10,12,12,16])2、allclose()allclose()用于匹配两个数组,并获得由布尔值表示的输出。如果两个数组在公差范围内不相等,则allclose()返回False。这个函数对于检查两个数组是否相似非常有用。array1=np.array([0.12,0.17,0.24,0.29])array2=np.array([0.13,0.19,0.26,0.31])#witholeranceof0.1,itshouldreturnFalse:np.allclose(array1,array2,0.1)False#withatoleranceof0.2,itshouldreturnTrue:np.allclose(array1,array2,0.2)True3,clip()Clip()将数组中的值保持在一个区间内。有时候,我们需要保证这个值在上下限之内。为此,我们可以使用Numpy的clip()函数来达到这个目的。给定一个区间,区间外的值被裁剪到区间边缘。x=np.array([3,17,14,23,2,2,6,8,1,2,16,0])np.clip(x,2,5)array([3,5,5,5,2,2,5,5,2,2,5,2])4.extract()顾名思义,extract()在特定条件下从数组中提取特定元素。通过extract()我们还可以使用and和or等??条件。#Randomintegersarray=np.random.randint(20,size=12)arrayarray([0,1,8,19,16,18,10,11,2,13,14,3])#Divideby2andcheckiffremainderis1cond=np.mod(array,2)==1condarray([False,True,False,True,False,False,False,True,False,True,False,True])#Useextracttogetthevaluesnp.extract(cond,array)array([1,19,11,13,3])#Applyconditiononextractdirectlynp.extract(((array<3)|(array>15)),array)array([0,1,19,16,18,2])5、where()Where()用于返回满足特定条件的数组中的元素。例如,它返回满足特定条件的值的索引位置。Where()类似于SQL中使用的where条件,如下例所示:y=np.array([1,5,6,8,1,7,3,6,9])#Whereyisgreaterthan5,returnsindexpositionnp.where(y>5)array([2,3,5,7,8],dtype=int64),)#Firstwillreplacethevaluesthatmatchthecondition,#secondwillreplacethevaluesthatdoesnotnp.where(y>5,"Hit","Miss")array([Miss,Miss,Hit,Hit,Miss,Hit,Miss,Hit,Hit],dtype=