NumPyNumPy是使用Python进行科学计算的基本软件包。它包含以下内容:
除了其明显的科学用途外,NumPy还可以用作通用数据的高效多维容器。可以定义任意数据类型。这使NumPy能够无缝,快速地与各种数据库集成。 1.argpartition() NumPy具有此惊人的功能,可以找到N个最大值索引。输出将是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()用于匹配两个数组,并根据布尔值获取输出。如果两个数组中的项在公差范围内不相等,则将返回False。检查两个数组是否相似的好方法,实际上很难手动实现。
3. clip() Clip()用于将值保留在一个间隔内的数组中。有时,我们需要将值保持在上限和下限之内。出于上述目的,我们可以使用NumPy的clip()。给定一个间隔,该间隔以外的值将被裁剪到间隔边缘。 x = np.array([3,17,14,23,2,2,6,8,1,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的条件。
5. 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='<U4') 6. percentile() Percentile()用于计算沿指定轴的数组元素的第n个百分点。
如果你以前使用过这些函数,那么你一定了解,这些函数对你有多大帮助! Pandaspandas是一个Python软件包,提供快速,灵活和富于表现力的数据结构,旨在使处理结构化(表格,多维,潜在异构)和时间序列数据既简单又直观。 pandas非常适合许多不同类型的数据:
以下是pandas擅长处理的一些事情:
1.read_csv(nrows = n) 可能你已经知道 read_csv 函数的使用。但是,即使不需要,我们大多数人仍然会错误地读取整个.csv文件。让我们考虑第一种情况,即我们不知道10gb的.csv文件中的列和数据,在这里读取整个.csv文件将不是一个明智的决定,因为这将不必要地占用我们的内存,并且会花费很多时间。我们可以从.csv文件中导入几行,然后根据需要进行进一步操作。 import ioimport requests# 、为了让你们更轻松地使用,在这里我们将使用在线数据集url = 'https://raw.github.com/vincentarelbundock/Rdatasets/master/csv/datasets/AirPassengers.csv's = requests.get(url).content# 仅读取前10行df = pd.read_csv(io.StringIO(s.decode('utf-8')),nrows=10 , index_col=0) 2. map() map()函数用于根据输入对应关系映射Series的值。用于将系列中的每个值替换为可以从函数,字典或系列中得出的另一个值。
3. apply() apply()允许用户传递一个函数并将其应用于Pandas系列的每个单个值。 # 最大值减去最小值的混合 lambda fnfn = lambda x: x.max() - x.min()# 将其应用于上面刚刚创建的dframedframe.apply(fn) 4. isin() isin()用于过滤数据帧。isin()帮助选择在特定列中具有特定(或多个)值的行。这是我遇到的最有用的功能。
5. copy() copy()用于创建Pandas对象的副本。将数据帧分配给另一个数据帧时,在另一个数据帧中进行更改时其值也会更改。为了防止出现上述问题,我们可以使用copy()。 #创建样本系列data = pd.Series(['India', 'Pakistan', 'China', 'Mongolia'])#分配我们面临的问题data1 = data #修改值data1 [0] ='USA' #还要更改旧数据框中的值#为防止这种情况,我们使用#创建系列的副本new = data.copy()#分配新的值new [1] ='Changed value' #打印数据print(new)print(data) 6. select_dtypes() select_dtypes()函数基于列dtypes返回数据框的列的子集。可以将此函数的参数设置为包括具有某些特定数据类型的所有列,也可以设置为排除具有某些特定数据类型的所有那些列。
其他的收获:数据透视表() Pandas 最神奇、最有用的功能是 pivot_table。如果你还在犹豫使用 groupby 并想扩展其功能,那么可以很好试试 pivot_table 。如果你知道数据透视表在excel中是如何工作的,那么对你来说可能就是小菜一碟。数据透视表中的级别将存储在结果 DataFrame 的索引和列上的MultiIndex对象(分层索引)中。 #创建一个样本数据school = pd.DataFrame({'A': ['Jay', 'Usher', 'Nicky', 'Romero', 'Will'], 'B': ['Masters', 'Graduate', 'Graduate', 'Masters', 'Graduate'], 'C': [26, 22, 20, 23, 24]})#让我们根据年龄和课程来创建数据透视表table = pd.pivot_table(school, values ='A', index =['B', 'C'], columns =['B'], aggfunc = np.sum, fill_value='Not Available') table 学习是为了更加方便我们的工作,这12个函数,不仅能方便我们处理数据,还能提高我们的工作效率。希望能对你带来收获! 以上所有代码都给你整理好了:https ://github.com/kunaldhariwal/Medium-12-Amazing-Pandas-NumPy-Functions 本文由未艾信息(www.weainfo.net)编译, |
|
来自: copy_left > 《python相关》