Cara mengurutkan elemen di numpy array (dengan contoh)
Anda dapat menggunakan salah satu metode berikut untuk menghitung urutan elemen dalam array NumPy:
Metode 1: Gunakan argsort() dari NumPy
import numpy as np
ranks = np. array (my_array). argsort (). argsort ()
Metode 2: Gunakan Rankdata() SciPy
from scipy. stats import rankdata
ranks = rankdata(my_array)
Contoh berikut menunjukkan cara menggunakan setiap metode dalam praktik dengan array NumPy berikut:
import numpy as np
#define array of values
my_array = np. array ([3, 5, 2, 1, 9, 9])
#view array
print (my_array)
[3 5 2 1 9 9]
Contoh 1: Mengurutkan Elemen dalam Array NumPy Menggunakan argsort()
Kode berikut menunjukkan cara menggunakan fungsi argsort() NumPy untuk mengurutkan elemen array:
#calculate rank of each item in array
ranks = np. array (my_array). argsort (). argsort ()
#view ranks
print (ranks)
[2 3 1 0 4 5]
Hasilnya menunjukkan peringkat setiap elemen dalam array asli, dengan 0 mewakili nilai terendah.
Keuntungan dari pendekatan ini adalah Anda tidak perlu memuat modul tambahan apa pun, namun kelemahannya adalah argsort() hanya memiliki satu metode untuk menangani tautan.
Secara default, argsort() menggunakan metode ordinal untuk menangani tautan, artinya nilai tertaut yang muncul pertama kali secara otomatis diberi peringkat lebih rendah.
Contoh 2: Pemeringkatan Elemen dalam Array NumPy Menggunakan Rankdata()
Kode berikut menunjukkan cara menggunakan fungsi Rankdata() SciPy untuk menentukan peringkat elemen array:
from scipy. stats import rankdata
#calculate rank of each item in array
ranks = rankdata(my_array)
#view ranks
print (ranks)
array([3. , 4. , 2. , 1. , 5.5, 5.5])
Hasilnya menunjukkan peringkat setiap elemen dalam array asli, dengan 1 mewakili nilai terkecil.
Jika Anda ingin 0 mewakili nilai terkecil, cukup kurangi 1 dari setiap nilai:
from scipy. stats import rankdata
#calculate rank of each item in array
ranks = rankdata(my_array) - 1
#view ranks
print (ranks)
[2. 3. 1. 0. 4.5 4.5]
Secara default, fungsi Rankdata() memberikan peringkat rata-rata ke semua nilai yang memiliki ikatan.
Namun, Anda dapat menggunakan argumen metode untuk menangani tautan dengan cara yang berbeda.
Misalnya, kode berikut menunjukkan cara menggunakan ordinal sebagai metode pengelolaan tautan:
from scipy. stats import rankdata
#calculate rank of each item in array
ranks = rankdata(my_array, method=' ordinal ') - 1
#view ranks
print (ranks)
[2 3 1 0 4 5]
Ini menghasilkan hasil yang sama seperti metode argsort() NumPy.
Metode pengelolaan tautan lainnya mencakup min , max , dan solid .
Pelajari setiap metode dalam dokumentasi SciPy .
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di NumPy:
Cara menghapus elemen duplikat dari array NumPy
Cara mengonversi array float NumPy menjadi bilangan bulat
Bagaimana mengkonversi matriks NumPy ke array