Sagen, ich habe zwei Arrays, gleiche Größe, keine Duplikate, jedes Element in Array 1 in array2:Erstellen von Indexkarte für zwei Arrays
arr1 = np.array([100,200,50,150])
arr2 = np.array([150,200,100,50])
Was ist der beste Weg ist, eine Indexkarte inds zu finden, so dass arr2 [inds] gibt arr1 zurück?
Meine aktuelle Lösung funktioniert, aber ich frage mich, ob es mehr numpyish war etwas, die effizient auf große Arrays wäre:
ind21 = map(lambda x:np.abs(x-arr2).argmin(),arr1)
In [57]: arr1,arr2[ind21]
Out[57]: (array([100, 200, 50, 150]), array([100, 200, 50, 150]))
Schöne finden, dass man und muss sehr effizient sein! Sehr ähnliche Umstände für einen 2D-Fall führen mich dazu, 'argsort' für eine andere Lösung zu verwenden - http://StackOverflow.com/a/36536068/3293881 – Divakar