最大的区分:
sort()与sorted()只是对列表的排序;
argsort()是对数组的排序;
①、sort()
sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
aList = [123, 134, 101, 126, 128]
aList.sort()
print ("List:", aList)
输出:
List: [101, 123, 126, 128, 134]
②、sorted()
sorted()对所有的可迭代序列都有效。
sorted(iterable,cmp,key,reverse)
参数:iterable可以是list或者iterator;
cmp是带两个参数的比较函数;
key 是带一个参数的函数;
reverse为False或者True;
③、argsort(a, axis=-1, kind='quicksort', order=None)
返回将对数组进行排序的索引。
注意:在数组中默认使用np.argsort(a):按照升序从小到大排序;np.argsort(-a):按照降序从大刀小排序
在矩阵中使用axis,其中axis=0:表示按列排序;axis=1:表示按行排序;
范例(一维数组):
import numpy as np
a = np.array([4, 3, 1, 2])
b = np.argsort(a) # 求a从小到大排序的坐标
print ("索引排序:", b) #返回升序的索引值
print ("数组值排序:", a[b]) #返回数组升序排列值
输出:
索引排序: [2 3 1 0]
数组值排序: [1 2 3 4]
范例(二维数组):
import numpy as np
x = np.array([[0, 3], [2, 2]])
Cols = np.argsort(x, axis=0) #按列排序
Rows = np.argsort(x, axis=1) #按行排序
print ("按列排序:", Cols)
print ("按行排序:", Rows)
输出:
按列排序: [[0 1]
[1 0]]
按行排序: [[0 1]
[0 1]]