Bu özel sorunun daha önce sorulmamış olmasına şaşırdım, ancak gerçekten SO'da veya belgelerinde bulamadım np.sort
.
Tam sayıları tutan rastgele bir uyuşuk dizim olduğunu varsayalım, örneğin:
> temp = np.random.randint(1,10, 10)
> temp
array([2, 4, 7, 4, 2, 2, 7, 6, 4, 4])
Sıralarsam, varsayılan olarak artan düzen elde ederim:
> np.sort(temp)
array([2, 2, 2, 4, 4, 4, 4, 6, 7, 7])
ancak çözümün azalan sırada sıralanmasını istiyorum .
Şimdi, her zaman yapabileceğimi biliyorum:
reverse_order = np.sort(temp)[::-1]
ama bu son ifade etkili mi? Artan sırada bir kopya oluşturmaz ve ardından sonucu ters sırayla almak için bu kopyayı tersine çevirmez mi? Durum gerçekten böyleyse, etkili bir alternatif var mı? np.sort
İşleri ters sırayla almak için sıralama işleminde karşılaştırmaların işaretini değiştirmek için parametreleri kabul ediyor gibi görünmüyor .
temp[::-1].sort()
ters sırayla sıralaması gerektiğini nereden biliyor? Onu okuma şeklim şu: orijinal diziyi tersine çevirin ve sonra sıralayın (artan sırada). Orijinal diziyi ters çevirmek (rastgele sırayla gelir) ve ardından artan sırada sıralamak, diziyi ters sırayla döndürür?