Skip to main content
 首页 » 编程设计

python之使用 numpy 对数组进行排序以适合另一个数组

2025年05月04日14jyk

这里有很多关于排序数组的问题,但我没能找到解决我问题的问题(这让我希望我没有想得太复杂)。所以我们开始吧:

我有两个值相等但顺序不同的数组:

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)