编写代码按照第 (N-1) 列对 Numpy 中的数组进行排序


在本例中,我们将学习如何按照第 (N-1) 列对 Numpy 中的数组进行排序。

使用 argsort() 按照第 (n-1) 列对数组进行排序

实例

让我们看第一个按照第 (n-1) 列对数组进行排序的示例 —

import numpy as np # Creat a Numpy Array a = np.array([[9, 2, 3], [4, 5, 6], [7, 0, 5]]) print("Array = \n",a) # The value of n n = 3 # Sort by n-1 column print("\nSort by n-1 th column = \n",a[a[:, (n-1)].argsort()])

输出

Array = 
 [[9 2 3]
 [4 5 6]
 [7 0 5]]

Sort by n-1 th column = 
 [[9 2 3]
 [7 0 5]
 [4 5 6]]

使用 sorted() 和 lambda 按照第 (n-1) 列对数组进行排序

实例

在此示例中,我们将使用 lambda 进行排序  –

import numpy as np # Create a Numpy Array arr = np.array([[5, 7, 7], [2, 3, 9], [7, 6, 6]]) print("Array = \n",arr) # The value of n n = 3 # Sort by n-1 column using lambda arr = sorted(arr, key=lambda arr_entry: arr_entry[n-1]) print("\nSort by n-1 th column = \n",arr)

输出

Array = 
 [[5 7 7]
 [2 3 9]
 [7 6 6]]

Sort by n-1 th column = 
 [array([7, 6, 6]), array([5, 7, 7]), array([2, 3, 9])]

使用 mergesort 按照第 (n-1) 列对数组进行排序

实例

在此示例中,我们将在 Python 中使用 mergesort() 方法进行排序  –

import numpy as np # Create a Numpy Array arr = np.array([[5, 7, 7], [2, 3, 9], [7, 6, 6]]) print("Array = \n",arr) # The value of n n = 3 # Sort by n-1 column using mergesort arr = arr[arr[:,(n-1)].argsort(kind='mergesort')] print("\nSort by n-1 th column = \n",arr)

输出

Array = 
 [[5 7 7]
 [2 3 9]
 [7 6 6]]

Sort by n-1 th column = 
 [[7 6 6]
 [5 7 7]
 [2 3 9]]

更新日期: 2022-9-15

152 次浏览

开启您的 职业

完成课程获得认证

开始使用
广告