numpy数组排序
a
array([ 8, 10, 3, 2, 14, 9, 7, 11, 0, 13, 6, 1, 5, 4, 12, 15])
c
[(0, 8), (1, 10), (2, 3), (3, 2), (4, 14), (5, 9), (6, 7), (7, 11), (8, 0), (9, 13), (10, 6), (11, 1), (12, 5), (13, 4), (14, 12), (15, 15)]
np.argpartition(a, 4)
array([ 3, 8, 11, 2, 13, 12, 10, 1, 6, 0, 5, 7, 9, 4, 14, 15],
dtype=int64)
a[np.argpartition(a, 4)]
array([ 2, 0, 1, 3, 4, 5, 6, 10, 7, 8, 9, 11, 13, 14, 12, 15])
a[np.argpartition(a, -4)]
array([ 1, 8, 3, 2, 4, 9, 7, 10, 0, 5, 6, 11, 12, 13, 14, 15])
a[np.argpartition(a, -4)][-4:]
array([12, 13, 14, 15])
a[np.argpartition(a, 4)][:4]
array([2, 0, 1, 3])