numpy srgsort,[:::-1]切片与[:-1]

一:np.agsort()对array排序,

https://docs.scipy.org/doc/numpy/reference/generated/numpy.argsort.html

1:1维数据

参考官方文档,返回了升序排列的索引

>>> x = np.array([3, 1, 2])
>>> np.argsort(x)
array([1, 2, 0])

2:2维数据

不加axis参数,默认按aixs=-1排序,2维情况默认按列排序,即每一行排完后有序

x = np.array([[0, 3,4], [2, 2,7]])

np.argsort(x)
Out[25]: 
array([[0, 1, 2],
       [0, 1, 2]], dtype=int64)

使用axis=0,按行排序,每一列有序;axis=1,按列排序,2维情况下等同不设置axis

np.argsort(x,axis=0)
Out[26]: 
array([[0, 1, 0],
       [1, 0, 1]], dtype=int64)
np.argsort(x,axis=1)
Out[27]: 
array([[0, 1, 2],
       [0, 1, 2]], dtype=int64)

axis=None,全部元素排序

x
Out[29]: 
array([[0, 3, 4],
       [2, 2, 7]])

np.argsort(x,axis=None)
Out[28]: array([0, 3, 4, 1, 2, 5], dtype=int64)

二:切片

1:[::-1] 

-号表示倒序,数字1表示步长,也可以改为其他步长

a='python'
b=a[::-1]
b
Out[4]: 'nohtyp'
c=a[::-2]
c
Out[6]: 'nhy'

2:[i:j]

包括i不包括j的切片,i空表示从0开始,j空表示到最后len(list)

a = [0,1,2,3,4,5,6,7,8,9]
b = a[1:3] 
b
Out[13]: [1, 2]

3:[i,j,x]

x是步长,默认不填是1,等同于2中的切片

a = [0,1,2,3,4,5,6,7,8,9]
b = a[1:3]   # [1,2]
b
Out[13]: [1, 2]
c=a[1:5]
c
Out[15]: [1, 2, 3, 4]
d=a[1:5:1]
d
Out[17]: [1, 2, 3, 4]
e=a[1:5:2]
e
Out[19]: [1, 3]

猜你喜欢

转载自blog.csdn.net/Dawei_01/article/details/85100041