23.1 Numpy 排序

29 篇文章 0 订阅
29 篇文章 1 订阅

23.1 Numpy 排序

np.sort(
参数1:a, 数组
参数2:axis=0/1, 0表示行1表示列
)
注意:
np.sort()作为函数使用,不更改被排序的原始array
array.sort()作为方法使用,会对原始array修改为排序后数组array
import numpy as np

aa = np.array([1, 5, 6, 6, 6, 2, 3, 4, 5])
bb = np.sort(aa)
print(bb) # [1 2 3 4 5 5 6 6 6]

a = np.arange(1, 31)
np.random.shuffle(a)
b = a.reshape((5, 6))
print(b)
[[28 19  7 15 29 18]
 [17 26  3 23 20  9]
 [ 6  2  4 25 12 10]
 [24 30 13  5 22  8]
 [ 1 27 11 21 14 16]]
print(np.sort(b))
[[ 7 15 18 19 28 29]
 [ 3  9 17 20 23 26]
 [ 2  4  6 10 12 25]
 [ 5  8 13 22 24 30]
 [ 1 11 14 16 21 27]]
print(np.sort(b, axis=0)) # 按行排序
[[ 1  2  3  5 12  8]
 [ 6 19  4 15 14  9]
 [17 26  7 21 20 10]
 [24 27 11 23 22 16]
 [28 30 13 25 29 18]]
print(np.sort(b, axis=1)) # 按列排序
[[ 7 15 18 19 28 29]
 [ 3  9 17 20 23 26]
 [ 2  4  6 10 12 25]
 [ 5  8 13 22 24 30]
 [ 1 11 14 16 21 27]]

思考:数据对象ndarray与numpy都具有sort方法,二者等价吗?
有的时候,我们不是对全部数据感兴趣,我们可能只对最小或者最大的一部分感兴趣。

部分排序:np.parition(a, k)

  1. 当k为正时,我们想要得到最小的k个数
  2. 当k为负时,我们想要得到最大的k个数

print(‘=’ * 50)

aa = np.array([4, 2, 8, 6, 5, 1, 9, 7])

# 取最小3个
bb = np.partition(aa, 3)
print(bb) # [1 2 4 5 6 8 9 7]
print(bb[:3]) # [1 2 4]

最大3个数

cc = np.partition(aa, -3)
print(cc) # [5 4 1 2 6 7 8 9]
print(cc[::-1][:3]) # [9 8 7]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

soyisou

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

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

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

打赏作者

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

抵扣说明:

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

余额充值