python如何对二维数组进行排序
时间: 2023-11-06 20:08:13 浏览: 157
二维数组的排序
Python中可以使用numpy模块的lexsort方法对二维数组进行排序。lexsort支持对数组按指定行或列的顺序排序,是间接排序,不修改原数组,返回索引。默认按最后一行元素有小到大排序,返回最后一行元素排序后索引所在位置。对于一维数组,a.argsort()这么使用就可以;argsort也不修改原数组,返回索引。具体操作可以参考以下代码:
import numpy as np
# 定义一个二维数组
a = np.array([[2, 7, 4, 2],
[35, 9, 1, 5],
[22, 12, 3, 2]])
# 按最后一列顺序排序
a[np.lexsort(a.T)]
# 按最后一列逆序排序
a[np.lexsort(-a.T)]
# 按第一列顺序排序
a[np.lexsort(a[:, ::-1].T)]
# 按最后一行顺序排序
a.T[np.lexsort(a)].T
# 按第一行顺序排序
a.T[np.lexsort(a[::-1, :])].T
以上代码分别演示了按最后一列顺序排序、按最后一列逆序排序、按第一列顺序排序、按最后一行顺序排序、按第一行顺序排序的操作方法。
阅读全文