numpy对数组进行排序

本文详细介绍了numpy库中用于数组排序的三个函数:sort、argsort和lexsort。numpy.sort直接对数组进行排序,适合一维数组;argsort返回排序后的索引值,需配合数组使用;lexsort则支持多条件排序,如按列优先级排序。通过实例代码演示了每个函数的用法,帮助初学者更好地理解和应用这些排序功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

最近需要对数组进行排序,但网上的博文有不少细节不够完整,对小白不够友好,所以简单写一下numpy的排序

1. numpy.sort

numpy.sort可直接对数组进行排序,非常简单,对一维数组排序很方便(多维数组更建议用其他功能更多的函数),例如

import numpy as np
x = np.array([1,6,7,8,2,3,3,5])
print(x)
x_sort = np.sort(x,axis = 0)
print(x_sort)

直接对x进行排序,结果为

2. numpy.argsort

argsort与sort不同,其直接返回的是索引值,而不是排序好后的值,在得到索引值后,需要再做一步 list[索引值],才能得到排序后的值
例如对x按行排列

import numpy as np
x = np.array([[9,6,7],[2,6,7],[8,2,3]])
print(x)
# x_index为索引值
x_index = x[:,0].argsort()
# x_sort排序后的值
x_sort = x[x_index]
print(x_sort)

结果为

2. numpy.lexsort

和argsort一样返回的是索引值。但是排序条件可以设置的更为复杂,比如在条件1排序相等的情况下,再根据条件2进行排序,例如下例,先根据第0列按从小到大排,值相等的情况下,按第1列值从小到大排列(注意这里首要条件是放在后面!!!这个和日常习惯是相反的)

import numpy as np
x = np.array([[9,6,7],[9,4,7],[8,2,3]])
print(x)
# x_index为索引值
# !!!注意首要条件放在后面
x_index = np.lexsort((x[:,1],x[:,0]))
# x_sort排序后的值
x_sort = x[x_index]
print(x_sort)

结果为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值