Python查找另一个数组中所有数组元素的索引

Python查找另一个数组中所有数组元素的索引,python,numpy,Python,Numpy,我正在努力做到以下几点: import numpy as np A = np.array([1,5,2,7,1]) B = np.sort(A) print B >>> [1,1,2,5,7] 我想找到B中所有元素的位置,就像在原始数组A中一样。也就是说,我想创建一个数组C,这样 print C >>[0,4,2,1,3] 这表示B中的1在A中的0和第4个位置出现,B中的5在A中的第一个位置出现,等等 我尝试使用np。其中(B==A),但它会产生乱码如果您出于任

我正在努力做到以下几点:

import numpy as np
A = np.array([1,5,2,7,1])
B = np.sort(A)
print B
>>> [1,1,2,5,7]
我想找到B中所有元素的位置,就像在原始数组A中一样。也就是说,我想创建一个数组C,这样

print C
>>[0,4,2,1,3]
这表示B中的1在A中的0和第4个位置出现,B中的5在A中的第一个位置出现,等等


我尝试使用
np。其中(B==A)
,但它会产生乱码

如果您出于任何原因不想导入numpy,您也可以使用以下代码:

import numpy as np
A = np.array([1,5,2,7,1])
print np.argsort(A) #prints [0 4 2 1 3]
a = [1,5,2,7,1]
b = zip(a, range(len(a)))
tmp = sorted(b, key=lambda x: x[0])
c = map( lambda x: x[1], tmp)
print c
[0,4,2,1,3]

A = [1,5,2,7,1]
for i,e in sorted(enumerate(A), key=lambda x: x[1]):
  print(i, e)

B = [x for x,_ in sorted(enumerate(A), key=lambda x: x[1])]
A = sorted(A)

print(A)
print(B)