python 二维数组 坐标 np.agrsort 优先级排序 原理

对一串坐标就行排序
坐标(x,y),首先按照y从小到大排序,然后以7个为一组,组内按照x小到大排序。

zb=np.array(zb)#将坐标数组类型转换

zb=zb[zb[:,1].argsort()]#对所有行依据第一列进行排序
#1.zb[:,1]是第一列的值序列
#2.zb[:,1].argsort()返回的是排序后的索引,即下标
#将zb以7行为以小组,组内按照x排序
i=0
while i<lenth:
    zb[i:i + 7, :] = zb[zb[i:i + 7, 0].argsort() + i]
    i+=7
#zb[i:i + 7, 0].argsort()返回的索引是针对i到i+7行内的,其取值范围为0-6,对于zb整个数组来说其索引值为zb[i:i + 7, 0].argsort()+i。
#zb[i:i + 7, :] = zb[zb[i:i + 7, 0].argsort() + i]将排序后的结果存储到原来位置


#运行结果
***
zb排序前
 [[1601, 1300, 1807, 1765], [1364, 1300, 1585, 1771], [1124, 1279, 1351, 1750], [886, 1271, 1127, 1748], [657, 1263, 877, 1733], [188, 1257, 415, 1729], [410, 1255, 639, 1728], [1308, 749, 1526, 1218], [1560, 746, 1770, 1214]]
zb依据第2列排序结果
 [[1560  746 1770 1214]
 [1308  749 1526 1218]
 [ 410 1255  639 1728]
 [ 188 1257  415 1729]
 [ 657 1263  877 1733]
 [ 886 1271 1127 1748]
 [1124 1279 1351 1750]
 [1601 1300 1807 1765]
 [1364 1300 1585 1771]]
zb7个为一组按照第一列排序结果
 [[ 188 1257  415 1729]
 [ 410 1255  639 1728]
 [ 657 1263  877 1733]
 [ 886 1271 1127 1748]
 [1124 1279 1351 1750]
 [1308  749 1526 1218]
 [1560  746 1770 1214]
 [1364 1300 1585 1771]
 [1601 1300 1807 1765]]
 ***
  

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

嗯哼_Hello

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值