Numpy dizisindeki öğeler nasıl sıralanır (örneklerle)


NumPy dizisindeki öğelerin sıralamasını hesaplamak için aşağıdaki yöntemlerden herhangi birini kullanabilirsiniz:

Yöntem 1: NumPy’den argsort() işlevini kullanın

 import numpy as np

ranks = np. array (my_array). argsort (). argsort ()

Yöntem 2: SciPy’nin Rankdata() işlevini kullanın

 from scipy. stats import rankdata

ranks = rankdata(my_array)

Aşağıdaki örnekler, her yöntemin aşağıdaki NumPy dizisiyle pratikte nasıl kullanılacağını gösterir:

 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]

Örnek 1: NumPy Dizisindeki Öğeleri argsort() Kullanarak Sıralama

Aşağıdaki kod, dizi öğelerini sıralamak için NumPy’nin argsort() işlevinin nasıl kullanılacağını gösterir:

 #calculate rank of each item in array
ranks = np. array (my_array). argsort (). argsort ()

#view ranks
print (ranks)

[2 3 1 0 4 5]

Sonuçlar, orijinal dizideki her bir öğenin sıralamasını gösterir; 0 , en düşük değeri temsil eder.

Bu yaklaşımın avantajı herhangi bir ek modül yüklemenize gerek olmamasıdır, ancak dezavantajı argsort() işlevinin bağlantıları işlemek için yalnızca bir yönteme sahip olmasıdır.

Varsayılan olarak argsort() , bağlantıları işlemek için sıralı bir yöntem kullanır; bu, ilk görünen bağlantılı değere otomatik olarak alt sıranın verileceği anlamına gelir.

Örnek 2: NumPy Dizisindeki Öğeleri Rankdata() Kullanarak Sıralayın

Aşağıdaki kod, dizi öğelerini sıralamak için SciPy’nin Rankdata() işlevinin nasıl kullanılacağını gösterir:

 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])

Sonuçlar, orijinal dizideki her bir öğenin sırasını gösterir; 1 , en küçük değeri temsil eder.

0’ın en küçük değeri temsil etmesini istiyorsanız, her değerden 1 çıkarmanız yeterlidir:

 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]

Varsayılan olarak Rankdata() işlevi, bağları olan tüm değerlere ortalama sıralamalar atar.

Ancak bağlantıları farklı bir şekilde ele almak için yöntem bağımsız değişkenini kullanabilirsiniz.

Örneğin, aşağıdaki kod sıralı sayının bağlantı yönetimi yöntemi olarak nasıl kullanılacağını gösterir:

 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]

Bu, NumPy’nin argsort() yöntemiyle aynı sonuçları üretir.

Diğer bağlantı yönetimi yöntemleri arasında minimum , maksimum ve yoğun bulunur.

SciPy belgelerinde her yöntem hakkında bilgi edinin.

Ek kaynaklar

Aşağıdaki eğitimler NumPy’de diğer genel görevlerin nasıl gerçekleştirileceğini açıklamaktadır:

NumPy dizisinden yinelenen öğeler nasıl kaldırılır
NumPy kayan nokta dizisini tam sayılara dönüştürme
NumPy matrisini diziye dönüştürme

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir