# -*- coding: utf-8 -*-
"""
Created on Mon May 20 20:30:49 2019
@author: User
"""
import numpy as np
s = np.array([1,2,4,3,1,2,2,4,6,7,2,4,8,4,5])
print('\nnp.sort(s):')
print(np.sort(s))
print('\nnp.argsort(s):')
print(np.argsort(s))
print('\nnp.argsort(-s):')
print(np.argsort(-s))
print('\n原地排序 s.sort():')
s.sort()
print(s, end = ' ')
print('\n\n多维数组中,指定按照数组的轴进行排序:')
s_r = np.array([3,23,52,34,52,3,6,654,34,7,85,23]).reshape(6,2)
print(s_r)
print('\n\ns_r.sort(axis = 1):')
s_r.sort(axis = 1)
print(s_r)
print('\n\ns_r.sort(axis = 0):')
s_r.sort(axis = 0)
print(s_r)
print('\n\ns_r.sort(axis = -1):')
s_r.sort(axis = -1)
print(s_r)
print('\n\n用lexsort指定排序的顺序:')
a=[1,5,1,4,3,4,4]
b=[9,4,0,4,0,2,1]
ind=np.lexsort((b,a))
print([(a[i],b[i]) for i in ind])
运行:
np.sort(s):
[1 1 2 2 2 2 3 4 4 4 4 5 6 7 8]
np.argsort(s):
[ 0 4 1 5 6 10 3 2 7 11 13 14 8 9 12]
np.argsort(-s):
[12 9 8 14 2 7 11 13 3 1 5 6 10 0 4]
原地排序 s.sort():
[1 1 2 2 2 2 3 4 4 4 4 5 6 7 8]
多维数组中,指定按照数组的轴进行排序:
[[ 3 23]
[ 52 34]
[ 52 3]
[ 6 654]
[ 34 7]
[ 85 23]]
s_r.sort(axis = 1):
[[ 3 23]
[ 34 52]
[ 3 52]
[ 6 654]
[ 7 34]
[ 23 85]]
s_r.sort(axis = 0):
[[ 3 23]
[ 3 34]
[ 6 52]
[ 7 52]
[ 23 85]
[ 34 654]]
s_r.sort(axis = -1):
[[ 3 23]
[ 3 34]
[ 6 52]
[ 7 52]
[ 23 85]
[ 34 654]]
用lexsort指定排序的顺序:
[(1, 0), (1, 9), (3, 0), (4, 1), (4, 2), (4, 4), (5, 4)]