【Python】Python程序用于按列对2D数组进行排序
CrazyPanda发表于:2024-01-14 23:04:06浏览:315次
当声明二维数组或二维数组时,它被视为矩阵。所以,我们知道矩阵由行和列组成。按升序或降序对属于矩阵特定列的元素进行排序的过程称为跨列对 2D 数组进行排序。让我们考虑一个算法和一个输入输出场景,以了解这个概念的确切应用。
输入输出场景
考虑一个二维数组。
arr = [[ 7, 9, 5, 7 ], [9, 5, 9, 4], [2, 7, 8, 6], [ 8, 6, 6, 5]]
上述二维数组的矩阵表示如下 -
7 9 5 7 9 5 9 4 2 7 8 6 8 6 6 5
现在,让我们按降序对给定矩阵进行跨列排序。
第一列由元素 7、9、2 和 8 组成。元素 7、9、2 和 8 的降序是 9、8、7 和 2。
第二列由元素 9、5、7 和 6 组成。元素 9、5、7 和 6 的降序是 9、7、6 和 5。
< /里>
同样,第三列和第四列也已排序。
跨列按降序排序的矩阵为
9 9 5 7 8 7 9 6 7 6 8 5 2 5 6 4
排序矩阵的数组表示为
这是排序后的数组。
[[9, 9, 9, 7 ], [7, 7, 8, 6], [8, 6, 6, 5], [ 2, 5, 5, 4 ]]
示例
在此示例中,我们将讨论如何跨列对二维数组进行排序。构建所需程序必须遵循的步骤如下
第 1 步 - 声明一个二维数组
第 2 步 - 按列遍历所有元素,以便相应地对这些元素进行排序。
步骤 3 - 比较同一列的元素,如果一个元素小于另一个元素,则遵循条件。
第 4 步 - 如果不满足条件,则交换元素。
第 5 步 - 继续相同的过程,直到覆盖列中的所有元素,最后打印排序形式的数组。
def sort_the_array_column_wise(arr): for j in range (size): for i in range(size - 1): if arr[i][j] < arr[i + 1][j]: temp = arr[i][j] arr[i][j] = arr[i + 1][j] arr[i + 1][j] = temp for i in range(size): for j in range(size): print(arr[i][j], end=" ") print() arr = [[7, 9, 5, 7 ], [9, 5, 9, 4], [2, 7, 8, 6], [ 8, 6, 6, 5 ]] size = len(arr) print("The array before performing sorting operation is: ") for i in range(size): for j in range(size): print(arr[i][j], end=" ") print() print("The array after performing sorting operation is: ") sort_the_array_column_wise(arr)
输出
上述程序的输出如下 -
The array before performing sorting operation is: 7 9 5 7 9 5 9 4 2 7 8 6 8 6 6 5 The array after performing sorting operation is: 9 9 9 7 7 7 8 6 8 6 6 5 2 5 5 4
结论
我们可以清楚地看到,输出实际上与上面示例中的预期结果匹配。同样,可以通过更改上述程序中的几条语句来完成二维数组的跨行排序。这就是跨列对 2D 数组进行排序的概念的工作原理。
猜你喜欢
- 【Python】第六章 异步爬虫
- 目录1. 协程的基本原理安装使用阻塞非阻塞同步异步多进程协程1.1 案例引入1.2 基础知识1.3 协程的用法1.4 定义协程1.5 绑定回调1.6 多任务协程1.7 协程实现1.8 使用aiohttp2. aiohttp的使用表单提交JSON数据提交2.1 基本介绍2.2 基本实例2.3 URL参数设置2.4 其他请求类型2.5 POST请求2.6 响应2.7 超时设置2.8 并发限制3. aiohttp异步爬取实战实现合并在main方法中将详情页的ID获取出来爬取详情页main方法增加对sc
- 【Python】Python中如何判断两个列表是否相等
- Python中如何判断两个列表是否相等,需要具体代码示例在编程中,经常会遇到需要判断两个列表是否相等的情况。Python提供了几种方法来实现这个判断,下面将详细介绍这些方法并给出具体的代码示例。方法一:使用“==”运算符Python中的列表是可迭代对象,可以直接使用“==”运算符来判断两个列表是否相等。该运算符会逐个比较列表中的每个元素,如果两个列表的元素都相等,则返回True;否则返回False。代码示例:list1 = [1, 2, 3, 4
- 【Python】在Mac上逐步安装和配置pip
- 一步步教你在Mac上安装pip,需要具体代码示例尽管Mac系统自带了Python解释器,但没有自带pip包管理工具,这让我们在安装Python包时遇到了一些困难。因此,我们需要手动安装pip,以便在Mac上更方便地管理和安装Python包。下面是一步步教你在Mac上安装pip的具体方法,附带代码示例:第一步:打开终端在Mac上,我们可以通过“Finder” -> “应用程序” -> “实用工具” -> “终端”打开终端。第二步:安装homebrewHomebrew是Mac上最受
- 【Python】如何使用Python中的数据分析库进行数据处理
- 如何使用Python中的数据分析库进行数据处理人们越来越重视数据处理和分析的重要性。随着电子设备的不断普及和互联网的发展,我们每天都会产生大量的数据。要从这些海量的数据中提取有用的信息和洞察,就需要使用强大的工具和技术。Python作为一种流行的编程语言,有许多优秀的数据分析库,如Pandas、NumPy和Matplotlib等,可以帮助我们高效地进行数据处理和分析。本文将介绍如何使用Python中的数据分析库进行数据处理。我们将重点介绍Pandas库,因为它是用于数据处理和分析的最常用和最强大
- 【Python】Python音频处理库的使用指南
- 音频处理是多媒体领域的一个重要分支,除了音乐产业,还是人工智能、人机交互等领域的必备技能。在Python中,音频处理库是比较常用的,它可以帮助我们进行音频采集、处理和分析。本文将会介绍一些常用的Python音频处理库和它们的使用方法。一、PyAudioPyAudio是一个Python模块,它可以协助我们在Python中实现音频的采集和播放等功能。它支持多种操作系统,不仅仅能够在Windows系统上使用,还可以在Linux和Mac OS X上使用。使用PyAudio,我们可以轻松地读取和写入音频文
- 【Python】使用Pandas重命名列名实现高效数据处理
- 高效数据处理:使用Pandas修改列名,需要具体代码示例数据处理是数据分析中一个非常重要的环节,而在数据处理过程中,经常需要对数据的列名进行修改。Pandas是一个强大的数据处理库,提供了丰富的方法和函数帮助我们快速高效地处理数据。本文将介绍如何使用Pandas修改列名,并提供具体的代码示例。在实际的数据分析中,原始数据的列名可能存在命名规范不统一、不易理解等问题,这就需要我们根据实际需求对列名进行修改。下面是一个示例数据集,包含三列数据:姓名、年龄和性别。import pandas&
- 【Python】如何使用Python脚本在Linux服务器上进行网络监控
- 如何使用Python脚本在Linux服务器上进行网络监控引言:随着科技的发展和互联网的普及,网络已经成为人们生活和工作不可或缺的一部分。然而,网络的稳定性和安全性一直是重要的关注点。为了确保服务器的正常运行,网络监控是必不可少的。本文将介绍如何使用Python脚本在Linux服务器上进行网络监控,并提供具体的代码示例。一、安装必要的库在开始之前,我们需要确保服务器上安装了python相关的库,包括psutil、socket和time。对于Debian和Ubuntu,可以使用以下命令安装:sudo
- 【Python】从零开始学习如何使用matplotlib画图
- 从零开始学习如何使用Matplotlib画图Matplotlib是一个强大的Python数据可视化库,可以用于创建各种类型的图形和图表。它广泛应用于数据科学和机器学习领域,以及其他需要展示数据的工作中。本文将介绍如何从零开始学习使用Matplotlib画图,并提供具体的代码示例。安装Matplotlib首先,我们需要安装Matplotlib库。可以使用pip命令来进行安装:pip install matplotlib导入Matplotlib安装完成后,在Python程序中使用
栏目分类全部>