参考:https://blog.csdn.net/haiyang_duan/article/details/79221458
1、排序:
字符串和列表,都使用sort函数,默认都为升序,若想为降序,使用reverse=True
####不改变列表的结构和内容,产生一个新的列表
a=[1,2,5,4]
sorted(a)
####改变列表的结构和内容
a.sort()
______________________________________________numpy_______________________________________
numpy数组的排序:(sort、argsort、lexsort、numpy.searchsorted、numpy.partition、)
默认都为升序,若需要降序,加上ascending=True
####不改变原数组结构内容,生成一个新的数组
a=np.array([[1,3,2,4],[5,8,7,6]])
numpy.sort(a, axis=1, kind='quicksort', order=None)
a:所需排序的数组
axis:数组排序时的基准,axis=0,按行排序;axis=1,按列排序
kind:数组排序时使用的方法,其中:
kind=′quicksort′ 为快排;kind=′mergesort′为混排;kind=′heapsort′为堆排;
order:一个字符串或列表,可以设置按照某个属性进行排序
####改变数组的结构内容
a.sort(axis=0)
####按照指定的列进行排序
#第三列进行排序,注意:argsort返回的只是排好序后的行索引,不会改变原数组
a=a[a[:,2].argsort()]
#####numpy.lexsort:
a:所需排序的数组
axis:数组排序时的基准,axis=0,按行排列;axis=1,按列排列
kind :数组排序时使用的方法,其中:
kind='quicksort'为快排;kind= ′ mergesort ′为混排;kind='heapsort'为堆排;
order :一个字符串或列表,可以设置按照某个属性进行排序
>>> a=[1,5,1,4,3,4,4]
>>> b=[9,4,0,4,0,2,1]
>>> np.lexsort((b,a))
# b在前,a在后,即是先按照a的元素进行比较
# 如a中的最小值为两个1,其索引分别为0,2,再计较b中相应索引上的值,即9,0
# 对应的最小应是:1,0,而其对应的索引为2,所以排序后返回的结果第一个值为索引2
# 下一个最小应是:1,9,而其对应的索引为0,所以排序后返回的结果第一个值为索引0
# 以此类推...
array([2, 0, 4, 6, 5, 3, 1], dtype=int64)
>>> np.lexsort((a,b))
# a在前,b在后,即是先按照b的元素进行比较
# 如b中的最小值为两个0,其索引分别为0,4,再计较a中相应索引上的
python 排序、排名、合并、修改(字符串、列表、numpy、pandas)等
最新推荐文章于 2024-04-07 19:20:36 发布
本文详细介绍了Python中字符串、列表、numpy和pandas的排序方法,包括sort、argsort、lexsort等,以及numpy数组和pandas DataFrame的合并与删除重复数据的操作。此外,还讲解了如何对数据进行排名,包括Series和DataFrame的rank方法。
摘要由CSDN通过智能技术生成