Python实现二维数组按照某行或列排序的方法

import numpy as np


a=np.array([[ 2, 7, 4, 2],
    [35, 9, 1, 5],
    [22, 12, 3, 2]])
print('a:')
print(a)

#1按最后一列顺序排序
print('按最后一列顺序排序:')
print(a[np.lexsort(a.T)])
print('')

#2按最后一列逆序排序
print('按最后一列逆序排序:')
print(a[np.lexsort(-a.T)])
print('')

#3按第一列顺序排序
print('按第一列顺序排序:')
print(a[np.lexsort(a[:,::-1].T)])
print('')

#4按最后一行顺序排序
print('按最后一行顺序排序:')
print(a.T[np.lexsort(a)].T)
print('')

#5按第行顺序排序
print('按第一行顺序排序:')
print(a.T[np.lexsort(a[::-1,:])].T)
#输出结果:
E:\phthon35\python.exe I:/catsVSdogs1-master/catsVSdogs1-master/file01/test15.py
a:
[[ 2  7  4  2]
 [35  9  1  5]
 [22 12  3  2]]
按最后一列顺序排序:
[[22 12  3  2]
 [ 2  7  4  2]
 [35  9  1  5]]

按最后一列逆序排序:
[[35  9  1  5]
 [ 2  7  4  2]
 [22 12  3  2]]

按第一列顺序排序:
[[ 2  7  4  2]
 [22 12  3  2]
 [35  9  1  5]]

按最后一行顺序排序:
[[ 2  4  7  2]
 [ 5  1  9 35]
 [ 2  3 12 22]]

按第一行顺序排序:
[[ 2  2  4  7]
 [ 5 35  1  9]
 [ 2 22  3 12]]

Process finished with exit code 0


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甄同学

感谢我的朋友

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值