首页 > 解决方案 > Python:当第一个数组被排序时,如何使第二个数组的索引与第一个数组的索引匹配?

问题描述

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

标签: pythonarraysnumpysorting

解决方案


使用 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)


推荐阅读