numpy高级应用——排序的高级用法

1. 区分数组类的sort方法和numpy的sort方法

ndarray的sort方法

与Python列表的sort方法一样,numpy对于ndarray类的排序sort方法也是直接在原数组上进行的。

import numpy as np

arr = np.random.randn(6)
arr.sort()

上方代码就是sort方法在源数据上的改变。对于数组排序时需要注意一点,如果目标数组是一个视图(切片),则原始数组同样将会被修改,

import numpy as np

arr = np.random.randn(3, 5)
print(arr)

arr[:, 0].sort()
print(arr)

numpy库sort方法

上面是数组类的sort方法,numpy的sort方法则会在排序后返回的是一个副本

arr = np.random.randn(5)
arr2 = np.sort(arr)
print(arr)

numpy的sort方法使用后不在源数据上进行改变。

两个方法都能够接收一个axis参数,沿着指定轴向进行排序,
在这里插入图片描述
两个排序方法也可以对升序和降序进行设置。

2.间接排序

数据分析工作中,常常根据一个或多个键对数据集进行排序,这就是间接排序。argsort方法和lexsort方法是numpy中实现间接排序的方法。

argsort方法

方法使用

在这里插入图片描述
上面的代码是argsort方法对一维数组进行排序,argsort方法返回的结果实际上是排序后数组元素索引的位置。

如果是一个二维数组,根据数组的第一列进行排序,
在这里插入图片描述

kind参数

在这里插入图片描述
保持等价元素的相对位置,将argsort方法的kind参数设置为"mergesort",即实现了稳定排序,
在这里插入图片描述
对稳定排序的解释,
在这里插入图片描述

lexsort方法

该方法和argsort方法差不多,区别在于lexsort方法可以一次性对多个键进行间接排序,
在这里插入图片描述
这个排序实际上是有顺序的,首先对last_name进行排序,last_name排序时,同样牵动着一同排序的first_name中的值进行排序。当last_name中存在相同的值时,再根据first_name中的值对数组进行排序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值