本文给大家分享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])#容差为0.1,它应该返回False:np.allclose(array1,array2,0.1)False#公差为0.2,应该返回True: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])#除以2并检查ifremainderis1cond=np.mod(array,2)==1condarray([False,True,False,True,False,False,False,True,False,True,False,True])#使用提取得到值np.extract(cond,array)array([1,19,11,13,3])#直接在extract上应用条件np.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])#其中y是大于5,返回索引位置np.where(y>5)array([2,3,5,7,8],dtype=int64),)#第一个会替换符合条件的值,#第二个会替换不是np.where(y>5,"Hit","Miss")array([Miss,Miss,Hit,Hit,Miss,Hit,Miss,Hit,Hit],dtype=
