1.arr.sort()
对数组元素进行排序,arr.sort()有返回值
import numpy as np
arr=np.array([4,5,23,11,56,78,25])
#result=sorted(arr,reverse=False) # sorted对列表进行排序
print(result)------------------------------>[4, 5, 11, 23, 25, 56, 78]
arr.sort()
print(arr)--------------------------------->[ 4 5 11 23 25 56 78]
2.np.argsort(arr)
返回排序后数组元素的索引
argsort=np.argsort(arr)
print("argsort:\n",argsort)--------------->argsort:[0 1 2 3 4 5 6]
d2=np.array([[12,8,36],[22,45,9]])
print(d2)--------------------------------->[[12 8 36]
[22 45 9]]
3.sort(axis=0,1)
多维数组排序
(1)将多维数组按列方向进行排序
d2.sort(axis=0)
print("d2:\n",d2)------------------------->d2:
[[12 8 9]
[22 45 36]]
(2).将多维数组按行方向进行排序(默认为升序)
d2.sort(axis=1)
print("d2:\n",d2)------------------------->d2:
[[ 8 9 12]
[22 36 45]]
4.sort(arr1,axis=0,1)
d3=np.array([[12,8,36],
[22,45,9],
[10,30,12]])
(1)将多维数组按列进行排序,返回原列索引
print(np.argsort(d3,axis=0))--------------->[[2 0 1]
[0 2 2]
[1 1 0]]
(2)将多维数组按行进行排序,返回原行索引
print(np.argsort(d2,axis=1))--------------->[[0 1 2]
[0 1 2]]
(3)将多维数组按行进行降序排序,返回原行索引
print(np.argsort(-d2,axis=1))-------------->[[2 1 0]
[2 1 0]]
5. np.argmax()
找出最大值的索引,如果是多维数组,则返回值是将多维数组展平后最大值的索引
a=np.array([[12,56,96],
[24,200,63]])
b=np.array([20,58,98,75,25,63,52])
argmaxA=np.argmax(a)
argmaxB=np.argmax(b)
print(argmaxA)--------------------------->4
print(argmaxB)--------------------------->2
6. np.argwhere()
根据条件在数组中搜索满足条件的元素,并分组返回对应索引
print("argwhere:\n",np.argwhere(b>50))----->[[1]
[2]
[3]
[5]
[6]]
print("argwhere:\n",np.argwhere(a>50))----->[[0 1]
[0 2]
[1 1]
[1 2]]
7.searchsort ()
为需要添加到数组中的元素寻找合适的索引,使得原数组的排序顺序不变
sorted=np.arange(5)------------------------>[0 1 2 3 4]
print("添加新元素之前:\n",sorted)------------>添加新元素之前:[0 1 2 3 4]
indices=np.searchsorted(sorted,[-2,7])
print("寻找到的插入位置索引:\n",indices)----->寻找到的插入位置索引:[0 5]
newsorted=np.insert(sorted,indices,[-2,7])
print(newsorted)--------------------------->[-2 0 1 2 3 4 7]