numpy
13.数组排序
排序主要用到的方法是np.sort和np.argsort
其中np.sort()对数组直接排序
而np.argsort()是返回排序后的原始索引
①一维数组
#创建一维数组
a=np.array([3,12,8,23,67,123,6,10])
np.sort(a)#升序排序
np.argsort(a)#按照元素大小来索引排序
②二维数组
np.random.seed(0)#保证每次值一样
aa=np.random.randint(100,size=(4,6))
#原数组:
'''
array([[44, 47, 64, 67, 67, 9],
[83, 21, 36, 87, 70, 88],
[88, 12, 58, 65, 39, 87],
[46, 88, 81, 37, 25, 77]], dtype=int32)
'''
np.sort(aa)#每行进行了排序
'''
array([[ 9, 44, 47, 64, 67, 67],
[21, 36, 70, 83, 87, 88],
[12, 39, 58, 65, 87, 88],
[25, 37, 46, 77, 81, 88]], dtype=int32)
'''
#axis=0时
np.sort(aa,axis=0)
'''
array([[44, 12, 36, 37, 25, 9],
[46, 21, 58, 65, 39, 77],
[83, 47, 64, 67, 67, 87],
[88, 88, 81, 87, 70, 88]], dtype=int32)
'''
#axis=1时,为默认值
np.sort(aa,axis=1)
'''
array([[ 9, 44, 47, 64, 67, 67],
[21, 36, 70, 83, 87, 88],
[12, 39, 58, 65, 87, 88],
[25, 37, 46, 77, 81, 88]], dtype=int32)
'''
#按最后一列排序
b=aa[:,-1]
#获取最后一列排好序的索引
index=np.argsort(b)
aa[index]
'''
array([[44, 47, 64, 67, 67, 9],
[46, 88, 81, 37, 25, 77],
[88, 12, 58, 65, 39, 87],
[83, 21, 36, 87, 70, 88]], dtype=int32)
'''