如何按列对 numpy 数组进行排序(带有示例)
您可以使用以下方法按列值对 NumPy 数组的行进行排序:
方法一:按列值升序排序
x_sorted_asc = x[x[:, 1]. argsort ()]
方法 2:按列值降序排序
x_sorted_desc = x[x[:, 1]. argsort ()[::-1]]
以下示例展示了如何在实践中使用每种方法。
示例1:按列值升序对Numpy数组进行排序
假设我们有以下 NumPy 数组:
import numpy as np #create array x = np. array ([14, 12, 8, 10, 5, 7, 11, 9, 2]). reshape (3,3) #view array print (x) [[14 12 8] [10 5 7] [11 9 2]]
我们可以使用以下代码根据第二列中的值对 NumPy 表的行进行升序排序:
#define new matrix with rows sorted in ascending order by values in second column
x_sorted_asc = x[x[:, 1]. argsort ()]
#view sorted matrix
print (x_sorted_asc)
[[10 5 7]
[11 9 2]
[14 12 8]]
请注意,行现在根据第二列中的值按升序(从小到大)排序。
示例 2:按降序列值对 Numpy 数组进行排序
假设我们有以下 NumPy 数组:
import numpy as np #create array x = np. array ([14, 12, 8, 10, 5, 7, 11, 9, 2]). reshape (3,3) #view array print (x) [[14 12 8] [10 5 7] [11 9 2]]
我们可以使用以下代码根据第二列中的值对 NumPy 表的行进行降序排序:
#define new matrix with rows sorted in descending order by values in second column
x_sorted_desc = x[x[:, 1]. argsort ()[::-1]]
#view sorted matrix
print (x_sorted_desc)
[[14 12 8]
[11 9 2]
[10 5 7]]
请注意,行现在根据第二列中的值按降序(从大到小)排序。
其他资源
以下教程解释了如何在 Python 中执行其他常见操作: