Cherish's Notebook
切换到深色模式
菜单
Wiki--浏览次数--访问次数--跳出率--平均停留

numpy

13.数组排序

排序主要用到的方法是np.sort和np.argsort

其中np.sort()对数组直接排序

而np.argsort()是返回排序后的原始索引

①一维数组

CODE
#创建一维数组
a=np.array([3,12,8,23,67,123,6,10])
np.sort(a)#升序排序
np.argsort(a)#按照元素大小来索引排序

②二维数组

CODE
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)
'''