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

yizhihongxing

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中的Turtle函数库

    详解Python中的Turtle函数库 Python的Turtle函数库提供了一个绘制图形的工具,可以让用户轻松地绘制线条、图形等各种图像。本攻略将详细介绍Turtle库的使用方法。 什么是Turtle函数库 Turtle是一个Python函数库,提供了一个绘制图形的工具。用户可以在程序中调用Turtle的各种函数,通过移动小海龟绘制各种线条和图形。 安装T…

    python 2023年6月5日
    00
  • Python Requests安装与简单运用

    PythonRequests安装与简单运用 安装PythonRequests PythonRequests是一个Python第三方库,用于发送HTTP请求。在使用PythonRequests之前,需要先安装它。可以使用pip命令进行安装,具体步骤如下: 打开终端或命令行界面。 输入以下命令进行安装: pip install requests 等待安装完成即可…

    python 2023年5月15日
    00
  • Python中最好用的命令行参数解析工具(argparse)

    让我来为您详细讲解 Python 中最好用的命令行参数解析工具 argparse,并提供两个示例说明。 什么是 argparse argparse 是 Python 内置模块中的一个命令行参数解析器,可以用于开发 Python 命令行工具和脚本,使得程序可以接收用户输入的命令行参数,并进行相关的处理和操作。argparse 可以解析各种类型的命令行参数,包括…

    python 2023年6月3日
    00
  • python修改文件内容的3种方法详解

    Python修改文件内容的3种方法详解 在Python编程过程中,我们经常需要修改文件内容。本文将介绍Python中三种常见的修改文件内容的方法。 方法一:将整个文件读入内存,修改后再写入文件 with open(‘file.txt’, ‘r’) as f: lines = f.readlines() with open(‘file.txt’, ‘w’) a…

    python 2023年6月3日
    00
  • Python命令行定时任务自动化工作流程

    下面我给您详细讲解一下“Python命令行定时任务自动化工作流程”的完整攻略: 1. 背景介绍 在实际工作中,我们经常需要定时执行某些任务,如每天对数据进行备份、定时发送邮件等。使用Python可以很方便地实现这些定时任务的自动化执行,从而减少工作量,提高效率。 2. 工作流程 Python命令行定时任务自动化工作流程一般包括以下步骤: 安装依赖包:需要安装…

    python 2023年5月19日
    00
  • Python利用redis-py实现集合与有序集合的常用指令操作

    下面是 Python 利用 redis-py 实现集合与有序集合的常用指令操作的完整攻略。 环境准备 在开始操作之前,需要环境中已经安装了 Redis 服务,并且 Python 中已经安装了 redis-py 库。 如果还未安装,可以通过以下方式进行安装: Redis 服务的安装 从 Redis 官网下载 Redis 的源码包并进行编译和安装。 redis-…

    python 2023年5月13日
    00
  • python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)

    Python开发实例之Python使用Websocket库开发简单聊天工具实例详解 在Python中,可以使用Websocket库来开发实时聊天工具。Websocket是一种在单个TCP连接上进行全双工通信的协议,它可以在客户端和服务器之间实现实时通信。以下是使用Websocket库开发简单聊天工具的详细步骤。 安装 以下命令安装websocket库: pi…

    python 2023年5月15日
    00
  • 用Python的urllib库提交WEB表单

    下面是用Python的urllib库提交WEB表单的完整攻略: 1. 导入需要的模块 首先我们需要导入urllib库,同时如果需要传输数据的话,也需要使用到urlencode方法,因此可以通过以下代码进行导入: import urllib.request import urllib.parse 2. 构造表单数据 构造表单数据的方式很多,通常可以通过以下两种…

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