numpy关于两列进行排序,两列分别是主序和附序
时间: 2024-03-01 22:50:47 浏览: 93
numpy中实现二维数组按照某列、某行排序的方法
如果你需要按照两列排序,其中一列为主序列,另一列为附序列,则可以先按照主序列排序,然后在主序列相同的情况下按照附序列排序。以下是一个例子:
``` python
import numpy as np
# 创建一个随机数组
arr = np.random.randint(0, 10, size=(5, 2))
print("原始数组:\n", arr)
# 先按照第一列排序,再按照第二列排序
sorted_indices = np.lexsort((arr[:, 1], arr[:, 0]))
sorted_arr = arr[sorted_indices]
print("按照两列排序后的数组:\n", sorted_arr)
```
以上代码将输出类似以下的结果:
```
原始数组:
[[2 5]
[8 6]
[6 4]
[5 8]
[3 4]]
按照两列排序后的数组:
[[6 4]
[3 4]
[2 5]
[8 6]
[5 8]]
```
这里使用了 `lexsort()` 函数,它可以按照多个键对数组进行排序,其中最后一个键为主键,依次向前为附键。因此,我们先将第二列作为最后一个键(附键),第一列作为倒数第二个键(主键),这样就可以实现按照两列排序了。
阅读全文