这里有很多关于排序数组的问题,但我没能找到解决我问题的问题(这让我希望我没有想得太复杂)。所以我们开始吧:
我有两个值相等但顺序不同的数组:
a = np.array([4, 2, 5, 6])
# b = np.random.permutation(a) # general case
b = np.array([5, 2, 6, 4])
我需要将 b 排序为 a 的索引,所以这里:
ind = np.array([3, 1, 0, 2])
请注意,我不想更改 a.
请您参考如下方法:
一种方法 broadcasting & np.where -
_,C = np.where(a[:,None] == b)
sample 运行-
In [210]: a = np.array([4, 2, 5, 6])
In [211]: b = np.array([5, 2, 6, 4])
In [212]: _,C = np.where(a[:,None] == b)
In [213]: C
Out[213]: array([3, 1, 0, 2], dtype=int64)
