python numpy数组的几种排序方式---by香蕉麦乐迪

python numpy数组的几种排序方式---by香蕉麦乐迪


说明:经常需要对数组或者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:是可迭代类型;
cmp:用于比较的函数,比较什么由key决定,有默认值,迭代集合中的一项;
key:用列表元素的某个属性和函数进行作为关键字,有默认值,迭代集合中的一项;
reverse:排序规则. reverse = True 或者 reverse = False,默认False(从小到大)。
返回值:是一个经过排序的可迭代类型,与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









你可能感兴趣的:(排序,python)