python数组排序方法之sort、sorted和argsort详解

Python数组排序方法之sort、sorted和argsort详解

排序概述

排序是将一组无序或者部分有序的数据按照一定的规则进行重新排列,使其成为有序的数据序列,便于查找、统计等操作。在Python中,对列表、元组和一维数组进行排序操作比较常见。

排序方法

Python提供了多种排序方法,主要包括sort、sorted和argsort三种。下面我们分别进行介绍。

sort方法

sort方法是应用在列表对象上的方法,用于对原列表进行排序,从小到大排序。具体用法如下:

l = [3, 1, 4, 1, 5, 9, 2, 6, 5]
l.sort()
print(l)

输出结果为:[1, 1, 2, 3, 4, 5, 5, 6, 9]

其中,sort方法可接受的参数包括:

  • cmp:用于指定比较的函数,可以自定义。
  • key:用于指定排序的关键字,按照关键字进行排序。
  • reverse:用于指定排序规则,True为降序,False为升序,默认为False。

sorted方法

sorted方法与sort方法类似,只是sorted方法是内置函数,不是列表对象的方法。它接受可迭代对象作为参数,返回排序后的新列表(不改变原列表),可以实现从小到大排序和从大到小排序。具体用法如下:

l = [3, 1, 4, 1, 5, 9, 2, 6, 5]
sorted_list = sorted(l)
print(sorted_list)

输出结果为:[1, 1, 2, 3, 4, 5, 5, 6, 9]

其中,sorted方法可接受的参数包括:

  • iterable:用于指定要排序的可迭代对象。
  • key:用于指定排序的关键字,按照关键字进行排序。
  • reverse:用于指定排序规则,True为降序,False为升序,默认为False。

argsort方法

argsort是用于对一维数组进行排序,并返回排序后的数组下标。具体用法如下:

import numpy as np

arr = np.array([3, 1, 4, 1, 5, 9, 2, 6, 5])
index = np.argsort(arr)
print(index)

输出结果为:[1 3 6 0 2 4 8 7 5]

其中,argsort方法可接受的参数包括:

  • axis:用于对多维数组按照指定轴进行排序,默认为-1。
  • kind:用于指定排序算法的种类,可以选择快速排序('quicksort')、堆排序('heapsort')或归并排序('mergesort'),默认为快速排序。

示例说明

示例一:对含有重复元素的列表进行排序

下面演示如何对一个含有重复元素的列表进行排序,我们使用sort和sorted分别进行演示:

l = [3, 1, 4, 1, 5, 9, 2, 6, 5]
l.sort()
print(l) # 输出结果为:[1, 1, 2, 3, 4, 5, 5, 6, 9]

sorted_list = sorted(l)
print(sorted_list) # 输出结果为:[1, 1, 2, 3, 4, 5, 5, 6, 9]

可以看出,sort和sorted方法都可以对含有重复元素的列表进行排序,从小到大排序。

示例二:对一维数组按照指定轴进行排序

下面演示如何对一个一维数组按照指定轴进行排序,我们使用argsort进行演示:

import numpy as np

arr = np.array([[1, 4, 3], [6, 2, 7], [5, 8, 9]])
index = np.argsort(arr, axis=0)
print(index)

输出结果为:[[0 1 0] [2 0 1] [1 2 2]]

可以看出,argsort方法成功对一维数组按照指定轴进行排序,并返回了排序后的数组下标。

总结

排序是程序员在日常工作中经常遇到的问题,Python提供了多种排序方法,包括sort、sorted和argsort三种。在应用这些排序方法的时候,需要注意的是各个方法的具体用法和可接受的参数。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python数组排序方法之sort、sorted和argsort详解 - Python技术站

(0)
上一篇 2023年6月5日
下一篇 2023年6月5日

相关文章

  • 零基础也能看懂的python内置csv模块教程

    下面我将为您详细讲解“零基础也能看懂的python内置csv模块教程”的完整攻略。 标题1:什么是csv模块? CSV是指“Comma-separated values”(逗号分隔值)的缩写,是电子表格、数据库中常用的一种数据格式,其使用文本文件存储数据。Python内置的csv模块提供了读写CSV文件的功能,可轻松地操作CSV数据。 标题2:csv模块基本…

    python 2023年6月3日
    00
  • Python通过Schema实现数据验证方式

    Python通过Schema实现数据验证方式是一种有效的实现数据验证的方法。下面将介绍如何使用Python Schema库进行数据验证,包括安装Schema库、编写Schema验证规则、使用Schema验证数据等。 安装Schema库 Schema是Python中一个简单而强大的库,旨在提供一种基于schema的方式来验证Python数据。首先需要安装Sch…

    python 2023年6月3日
    00
  • 利用Python制作简易的核酸检测日历

    下面是详细的攻略: 制作核酸检测日历的完整攻略 1. 确定需求和功能 核酸检测日历需要具备以下功能: 可以自动计算出每个人的检测周期,生成相应的日历。 可以输入多个人的信息,生成对应的多个日历。 日历中需要标注每日的核酸检测状态,方便查看。 2. 确定数据格式 为了方便存储和处理数据,可以采用csv文件格式保存每个人的信息。每行包括姓名、检测周期和最近一次检…

    python 2023年6月3日
    00
  • Python Socketserver实现FTP文件上传下载代码实例

    Python Socketserver实现FTP文件上传下载代码实例 本文主要介绍如何使用Python Socketserver实现简单的FTP文件传输服务,涉及TCP通信、文件上传下载等知识点。 一、Socketserver模块概述 Socketserver模块是Python标准库中的一个模块,它提供了在网络环境中编写简单协议和服务器的框架。该模块提供了使…

    python 2023年6月3日
    00
  • Python如何快速上手? 快速掌握一门新语言的方法

    Python如何快速上手:快速掌握一门新语言的方法 学习Python的前置知识 在学习Python之前,有一些前置知识是必要的,如基础的编程概念和算法思想。如果你没有这些基础,建议先学习一下基础的编程知识,掌握C语言和数据结构、算法等基础课程。 Python学习资源 Python学习资源丰富,包括网络课程、电子书、官方文档和社区等。以下是一些学习Python…

    python 2023年5月19日
    00
  • 利用python计算时间差(返回天数)

    下面是利用Python计算时间差(返回天数)的完整攻略。 标准库中的date、datetime模块 Python标准库中有两个模块可以用于处理日期和时间:date模块和datetime模块。其中,datetime模块是在date模块的基础上增加了时间相关的功能。我们可以使用datetime模块中的两个类: datetime.date:表示日期,包含年、月、日…

    python 2023年6月2日
    00
  • Python使用pickle进行序列化和反序列化的示例代码

    Python中可以使用pickle模块进行序列化和反序列化。pickle是Python标准库中的模块,可以将对象或者数据结构转化为二进制流,方便传输或者保存到文件中。接下来,将详细讲解Python使用pickle进行序列化和反序列化的示例代码及其技巧。 序列化 在Python中使用pickle进行序列化非常简单,只需要调用pickle.dumps()或者pi…

    python 2023年6月2日
    00
  • Tkinter组件Checkbutton的具体使用

    以下是关于Tkinter组件Checkbutton的完整攻略。 Checkbutton的介绍 Checkbutton是Tkinter中的一个组件,它可以提供一个复选框,可以用来表示二元状态(选中/未选中)。比如在选项设置界面,我们可以利用Checkbutton让用户选择他们想要的功能选项。 Checkbutton的语法 Checkbutton的语法如下: w…

    python 2023年6月13日
    00
合作推广
合作推广
分享本页
返回顶部