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

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

在这个示例中,我们将看到如何使用Numpy按照(N-1)列对数组进行排序。

使用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])]

使用合并排序按(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]]

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程