python二元数组排序函数

  • Post category:Python

要对Python的二元数组进行排序,可以使用内置的sorted()函数或使用numpy库的sort()函数,下面分别进行详细介绍。

使用sorted()函数排序二维数组:

以下是sorted()函数的基本语法:

sorted(iterable, key=None, reverse=False)
  • iterable:待排序的可迭代对象;
  • key:指定用于排序比较的函数;
  • reverse:表示是否降序排列,默认为升序排列。

假设有一个包含3个子数组的二维列表,如下所示:

arr = [[5, 2, 3], [1, 6, 4], [8, 7, 9]]

首先,可以通过对子数组的某个元素进行排序,来排序二维数组arr,例如对每个子数组的第一个元素进行排序,可以使用以下代码:

sort_arr = sorted(arr, key=lambda x:x[0])

这里使用了lambda表达式作为key函数,以子数组的第一个元素作为排序关键字。执行结果为:

[[1, 6, 4], [5, 2, 3], [8, 7, 9]]

如果想按照子数组的第二个元素进行排序,可以将key函数改为:

sort_arr = sorted(arr, key=lambda x:x[1])

如果想按照子数组的第三个元素进行排序,可以将key函数改为:

sort_arr = sorted(arr, key=lambda x:x[2])

如果想按照子数组的第一个元素进行降序排列,可以将reverse参数设置为True:

sort_arr = sorted(arr, key=lambda x:x[0], reverse=True)

使用numpy库的sort()函数排序二维数组:

numpy库是Python中用于科学计算的重要库之一,其中的sort()函数可以对二维数组进行排序。以下是sort()函数的基本语法:

numpy.sort(a, axis=-1, kind='quicksort', order=None)
  • a:要排序的数组;
  • axis:表示要在哪个轴上排序,-1表示默认按最后一个轴排序;
  • kind:表示排序算法的类型,默认使用quicksort;
  • order:表示按照数组的哪个字段排序。

假设有一个包含3个子数组的二维numpy列表,如下所示:

import numpy as np

arr = np.array([[5, 2, 3], [1, 6, 4], [8, 7, 9]])

要按照子数组的第一个元素排序,可以使用以下代码:

sort_arr = np.sort(arr, axis=0)

其中axis=0表示按照子数组的第一个元素排序。执行结果为:

[[1 2 3]
 [5 6 4]
 [8 7 9]]

如果要按照子数组的第二个元素排序,可以将axis改为1:

sort_arr = np.sort(arr, axis=1)

执行结果为:

[[2 3 5]
 [1 4 6]
 [7 8 9]]

如果要按照子数组的第三个元素排序,可以将axis改为0,再指定order参数:

sort_arr = np.sort(arr, axis=0, order=2)

其中order=2表示按照子数组的第三个元素排序。执行结果为:

[[5 2 3]
 [1 6 4]
 [8 7 9]]

以上是对Python二元数组排序函数的详细介绍及代码实例说明。