加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Python,Numpy,Pandas…数据科学家必备排序技巧

发布时间:2019-09-12 06:24:37 所属栏目:教程 来源:读芯术
导读:副标题#e# 对数据进行分类整理是数据科学家和数据工程师的基础工作。Python会提供许多内置库,优化排序选项。有些库甚至可以同时在GPU上运行。令人惊奇的是,一些排序方法并没有使用之前所述的算法类型,其他方法的执行效果也不如预期。 选择使用哪种库和哪

通过df.sort_values(by = my_column)对Pandas DataFrame进行排序。有许多可用关键字参数。

  • by:str或str of list,required—要排序的名称或名称列表。如果axis为0或index,那by可能会有索引级别和/或列标签。如果axis为1或columns,则by可能含级别和/或索引标签。
  • axis:{0或index,1或columns},默认为0—排序轴。
  • ascending:bool或bool列表,默认为True—按升序与降序排序。指定多个排序顺序的列表。如果是bool列表,就必须与by参数长度匹配。
  • inplace:bool,默认为False—如果为True,则直接对其执行操作。
  • kind:{quicksort,mergesort,heapsort或stable},默认快速排序—选择排序算法。可另参见ndarray.np.sort了解更多内容。对于DataFrames,此法仅应用于单列或单标签的排序。
  • na_position:{‘first’,‘last’},默认‘last’ - 首先以NaNs作为开头,最后将NaNs作为结尾。

按照相同的句法对Pandas系列进行排序。用Series时,不需要输入by关键字,因为列不多。

Pandas用到了Numpy计算法,动动手指即可轻松获得同等优化的排序选项。但是,Pandas操作需要更多的时间。

按单列排序时的默认设置是Numpy的quicksort。如果排序进度很慢,那么实际为内省排序的quicksort会变为堆排序。Pandas确保多列排序使用Numpy的mergesort。Numpy中的mergesort实际用的是Timsort和Radix排序算法。这些排序算法都很稳定,而且多数列排序中稳定排序是很有必要的。

使用Pandas需记住的关键内容:

  • 函数名称:sort_values()。
  • by= column_name或列名列表。
  • “ ascending”是逆转的关键字。
  • 用mergesort进行稳定排序。

在进行探索性数据分析时,常发现自己是用Series.value_counts()在Pandas DataFrame中对值进行求和排序的。这是一个代码片段,用于每列常用值的求和和排序。

  1. for c in df.columns:  
  2. print(f"---- {c} ---")  
  3. print(df[c].value_counts().head()) 

Dask,实际上是用于大数据的Pandas,到2019年中期还没有实现并行排序,尽管大家一直在讨论这个。

对小数据集进行探索性数据分析,Pandas排序是个不错的选择。当数据很大,想要在GPU上并行搜索时,你也许会想到TensorFlow或PyTorch。

TensorFlow

Python,Numpy,Pandas…数据科学家必备排序技巧

TensorFlow是最受欢迎的深度学习框架。以下是TensorFlow 2.0的简介。

tf.sort(my_tensor)返回tensor排序副本。可选参数有:

  • axis:{int,optional}待排序轴。默认值为-1,对最后一个轴进行排序。
  • direction:{ascending or descending}—数值排序的方向。
  • name:{str,optional}—操作的名称。

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读