针对一维的numpy的ndarray数组,获取前N位的具体的数值(value),
import numpy as np
arr = np.array([1,3,4,5,8,10, 2,3,4,6])
arr
Out[11]: array([ 1, 3, 4, 5, 8, 10, 2, 3, 4, 6])
arr.sort()
arr
Out[13]: array([ 1, 2, 3, 3, 4, 4, 5, 6, 8, 10])
arr[-5:]
Out[14]: array([ 4, 5, 6, 8, 10])
针对一维的numpy的ndarray数组,获取前N位所在的下标(index),
import numpy as np
arr = np.array([1,3,4,5,8,10, 2,3,4,6])
arr
Out[17]: array([ 1, 3, 4, 5, 8, 10, 2, 3, 4, 6])
np.argsort(arr)[-5:][::-1]
Out[18]: array([5, 4, 9, 3, 8], dtype=int64)
一个是原地sort,一个是np.argsort()获取下标。如果是多维数组,可以先采用arr.flatten()转换为一维的数组。
网友评论