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]]