Python:当第一个数组排序时,如何使第二个数组的索引匹配第一个数组的索引?

时间:2020-03-08 23:13:43

标签: python arrays numpy sorting

我有两个Numpy数组:a: [2,5,3,7,9,1]b: [1,2,3,4,5,6]。我想对a进行排序,并以与b的索引相同的方式移动a的元素。在这种情况下,a将成为[1,2,3,5,7,9],而b将成为[6,1,3,2,4,5]。我知道如何使用np.sorta进行排序,但是我将如何重新排列b

1 个答案:

答案 0 :(得分:2)

使用NumPy的argsort

>>> b[a.argsort()]
array([6, 1, 3, 2, 4, 5])

没有NumPy的替代方法:

>>> a, b = zip(*sorted(zip(a, b)))
>>> a
(1, 2, 3, 5, 7, 9)
>>> b
(6, 1, 3, 2, 4, 5)