Sono sorpreso che questa domanda specifica non sia stata posta prima, ma davvero non l'ho trovata su SO né sulla documentazione di np.sort.
Supponiamo di avere un array numpy casuale che contiene numeri interi, ad esempio:
> temp = np.random.randint(1,10, 10)
> temp
array([2, 4, 7, 4, 2, 2, 7, 6, 4, 4])
Se lo ordino, ottengo l'ordine crescente per impostazione predefinita:
> np.sort(temp)
array([2, 2, 2, 4, 4, 4, 4, 6, 7, 7])
ma voglio che la soluzione venga ordinata in ordine decrescente .
Ora, so che posso sempre fare:
reverse_order = np.sort(temp)[::-1]
ma questa ultima affermazione è efficiente ? Non crea una copia in ordine crescente e quindi inverte questa copia per ottenere il risultato in ordine inverso? Se è davvero così, esiste un'alternativa efficiente? Non sembra che np.sortaccetta parametri per modificare il segno dei confronti nell'operazione di ordinamento per ottenere le cose in ordine inverso.
temp[::-1].sort()sapere che deve ordinare in ordine inverso ?? Il modo in cui lo leggo è: inverti l'array originale, quindi ordinalo (in ordine crescente). Perché invertire l'array originale (arrivando in ordine casuale) e quindi ordinarlo in ordine crescente restituirebbe l'array in ordine inverso?