python中的sort函数和sorted函数的使用方法
常见的排序函数
(个人理解,如有偏差,请多加指教。)
一个是 list 内置的 sort() 方法,
另一个是全局的 sorted() 方法,
第三个是 argsort() 函数,是 numpy 库,pandas****库 (等)中的函数。
此外,pandas中还有按值排序sort_value() , 按下标排序sort_index()。该各部分可以见连接(点击即可访问)
使用方法及参数 | 输出值的变化 |
---|---|
列表名.sort( key=排序规则, reverse=False 或 True) | 将原列表的值进行修改, 进行排序 |
sorted(可迭代对象,key=排序规则, reverse=False 或 True) | 原列表的内容不发生改变,而是产生了一个排序完成后的新的变量 |
变量名.argsort() | 输出 = 按规则排序完成后,每个元素对应的原来的下标值 |
代码演示:
sort()
list_name = [1, 3, 4, -0.2200222, -4.66]
list_name.sort()
print(list_name)
运行结果:
[-4.66, -0.2200222, 1, 3, 4]
原列表的值发生变化,原列表被修改
sorted()
list_name = [1, 3, 4, -0.2200222, -4.66]
list_name_new = sorted(list_name)
print(list_name)
print(list_name_new)
运行结果
[1, 3, 4, -0.2200222, -4.66] 原列表
[-4.66, -0.2200222, 1, 3, 4] 排序后的列表
argsort()
import pandas as pd
s = pd.Series([1, 3, 4, -0.2200222, -4.66])
print(s.argsort())
运行结果:
输出的是: 排序完成后的数值,在原始数据中对应的下标
index 输出的下标
0 4
1 3
2 0
3 1
4 2
dtype: int64
import numpy as np
s = np.array([1, 3, 4, -0.2200222, -4.66])
print(s.argsort())
运行结果:
[4 3 0 1 2]