La funzione argsort()
restituisce una matrice di indici che può essere utilizzata per indicizzare l'array originale in modo che il risultato corrisponda al risultato sort()
.numpy: applicazione di argsort a un array
Esiste un modo per applicare tali indici? Ho due array, uno è l'array utilizzato per ottenere l'ordinamento e un altro sono alcuni dati associati.
Mi piacerebbe calcolare assoc_data[array1.argsort()]
ma non sembra funzionare.
Ecco un esempio:
z=array([1,2,3,4,5,6,7])
z2=array([z,z*z-7])
i=z2.argsort()
z2=array([[ 1, 2, 3, 4, 5, 6, 7],
[-6, -3, 2, 9, 18, 29, 42]])
i =array([[1, 1, 1, 0, 0, 0, 0],
[0, 0, 0, 1, 1, 1, 1]])
vorrei applicare i per Z2 (o di un altro array con dati associati), ma non sono sicuro come farlo.
Quale asse vuoi ordinare? – user545424