说明:经常需要对数组或者list进行排序,python提供了好几种排序的函数,下面说明下特点;
二维数组a:
1 4
3 1
1、ndarray.sort(axis=-1, kind='quicksort', order=None)
使用方法:a.sort
参数说明:
axis:排序沿着数组的方向,0表示按行,1表示按列
kind:排序的算法,提供了快排、混排、堆排
order:不是指的顺序,以后用的时候再去分析这个
作用效果:对数组a排序,排序后直接改变了a
例如:
>>a.sort(axis=1)
>>print a
1 4
1 3
2、numpy.sort(a, axis=-1, kind='quicksort', order=None)
使用方法:numpy.sort(a)
参数说明:
a:要排序的数组,其他同1
作用效果:对数组a排序,返回一个排序后的数组(与a相同维度),a不变
例如:
>>print numpy.sort(a,axis=1)
1 4
1 3
>>print a
1 4
3 1
3、numpy.argsort(a, axis=-1, kind='quicksort', order=None)
使用方法:numpy.argsort(a)
参数说明:同2
作用效果:对数组a排序,返回一个排序后索引,a不变
例如:
>>print numpy.argsort(a,axis=1)
0 1
1 0
4、sorted(iterable, cmp=None, key=None, reverse=False)说明:内置的排序函数,对list,字典等等可以使用
iterable:是可迭代类型;例如:b是一个字典
b:
{'a': 2, 'c': 1, 'b': 3}
对b进行排序:
>>c=sorted(b.iteritems(),key=operator.itemgetter(1),reverse=False)
>>print c[('c', 1), ('a', 2), ('b', 3)]可见:返回的是一个list