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

2021年了,Numpy&Pandas的这12个高效技巧你还没掌握吗?

时间:2023-03-14 17:38:53 科技观察

这篇文章给大家分享了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函数一一进行分析。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])allclose()allclose()用于匹配两个数组并得到Output用布尔值表示。如果两个数组在公差范围内不相等,则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,它应该返回True:np.allclose(array1,array2,0.2)Trueclip()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])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])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=