这里有很多关于排序数组的问题,但是我找不到解决问题的问题(这让我希望我没有想到复杂的方法)。所以我们走了:
我有两个数值相等但排列顺序不同的数组:
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])
请注意,我不想更改。
答案 0 :(得分:3)
broadcasting
&的一种方法np.where
-
_,C = np.where(a[:,None] == b)
示例运行 -
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)