如何按列对 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 中执行其他常见操作:

如何在 NumPy 数组中查找值索引
如何从 NumPy 数组中获取特定列
如何向 NumPy 数组添加列

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注