Python笔记:3.1.2.4numpy数组排序

# -*- 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)]
 

你可能感兴趣的:(python学习)