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

时间:2016-05-26 17:30:49

标签: 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]

我想在原始数组A中找到B中所有元素的位置。即我想创建一个数组C,以便

print C
>>[0,4,2,1,3]

指B中1位于A位于0位和第4位,B位于A位于第1位,等等

我尝试使用np.where( B == A),但却产生了乱码

3 个答案:

答案 0 :(得分:9)

import numpy as np
A = np.array([1,5,2,7,1])
print np.argsort(A) #prints [0 4 2 1 3]

答案 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]

答案 2 :(得分:1)

https://repl.it/CVbI

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)