logo

Python'da numpy.argsort()

NumPy modülü argsort() fonksiyonunu sağlar ve bir diziyi sıralayacak indeksleri döndürür.

NumPy modülü, anahtar kelimeyle belirtilen algoritmanın yardımıyla, verilen eksen boyunca dolaylı sıralama gerçekleştirmeye yönelik bir işlev sağlar. Bu işlev, diziyi sıralayacak olan 'a' ile aynı şekle sahip bir dizi indeks döndürür.

Sözdizimi

 numpy.argsort(a, axis=-1, kind=None, order=None) 

Parametreler

Bunlar numpy.argsort() işlevindeki aşağıdaki parametrelerdir:

metin sarmalayıcı css

a: dizi_benzeri

Bu parametre sıralamak istediğimiz kaynak diziyi tanımlar.

eksen: int veya Yok(isteğe bağlı)

Bu parametre, sıralamanın gerçekleştirileceği ekseni tanımlar. Varsayılan olarak eksen -1'dir. Bu parametreyi Yok olarak ayarlarsak düzleştirilmiş dizi kullanılır.

tür: {'hızlı sıralama','birleştirme sıralaması','yığın sıralama','kararlı'}(isteğe bağlı)

Bu parametre sıralama algoritmasını tanımlar. Algoritma varsayılan olarak hızlı sıralama . İkisi birden birleştirme sıralaması Ve stabil örtülerin altındaki zaman sıralamasını kullanıyorlar. Gerçek uygulama veri türüne göre değişecektir. birleştirme sıralaması Geriye dönük uyumluluk için seçenek korunur.

amerika birleşik devletleri'nde kaç şehir var

sıra: str veya str listesi (isteğe bağlı)

'a', tanımlı alanlara sahip bir diziyse, bu bağımsız değişken hangi alanların birinci, ikinci vb. karşılaştırılacağını belirtir. Tek alan bir dize olarak belirtilebilir ve tüm alanların belirtilmesi gerekmez. Ancak belirtilmemiş alanlar, bağları koparmak için yine de veri tipinde göründükleri sıraya göre kullanılacaktır.

Döndürür: index_array: ndarray, int

Bu işlev, 'a'yı belirtilen eksene göre sıralayan bir dizi dizin döndürür. 'a' 1-D ise, a[index_array] sıralanmış bir 'a' verir. Daha genel olarak, np.take_along_axis(dizi1, indeks_dizi, eksen=eksen) boyutluluğa bakılmaksızın her zaman sıralanmış 'a'yı verir.

Örnek 1: np.argsort()

 import numpy as np a=np.array([456,11,63]) a b=np.argsort(a) b 

Yukarıdaki kodda

kabuk komut dosyasındaki parametre
  • Numpy'yi np takma adıyla içe aktardık.
  • Np.array() fonksiyonunu kullanarak bir 'a' dizisi oluşturduk.
  • 'b' değişkenini bildirdik ve np.argsort() fonksiyonunun döndürdüğü değeri atadık.
  • Fonksiyonda 'a' dizisini geçtik.
  • Son olarak b'nin değerini yazdırmaya çalıştık.

Çıktıda, indeksleri (sıralanmış dizi için elemanın konumunu gösterir) ve dtype'i içeren bir ndarray gösterilmiştir.

Çıktı:

 array([456, 11, 63]) array([1, 2, 0], dtype=int64) 

Örnek 2: 2 boyutlu dizi için(ilk eksen boyunca (aşağı) sıralar)

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=0) indices 

Çıktı:

 array([[0, 1], [1, 0]], dtype=int64) 

Örnek 3: 2 boyutlu dizi için(eksenin alternatifi=0)

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=0) indices np.take_along_axis(a, indices, axis=0) 

Yukarıdaki kodda

  • Numpy'yi np takma adıyla içe aktardık.
  • Np.array() fonksiyonunu kullanarak 2 boyutlu bir 'a' dizisi oluşturduk.
  • Değişken indeksleri tanımladık ve np.argsort() fonksiyonunun döndürdüğü değeri atadık.
  • 2 boyutlu 'a' dizisini ve eksenini 0 olarak geçtik.
  • Daha sonra take_along_axis() fonksiyonunu kullandık ve kaynak dizisini, indeksleri ve ekseni aktardık.
  • Bu işlev sıralanmış 2 boyutlu diziyi döndürdü.

Çıktıda, sıralanmış öğelere sahip 2 boyutlu bir dizi gösterilmiştir.

Çıktı:

 array([[0, 2], [3, 5]]) 

Örnek 4: 2 boyutlu dizi için( son eksene göre (çapraz) sıralar)

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=1) indices 

Çıktı:

 array([[0, 1], [1, 0]], dtype=int64) 

Örnek 5: 2 boyutlu dizi için(eksenin alternatifi=1)

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=1) indices np.take_along_axis(a, indices, axis=1) 

Çıktı:

 array([[0, 2], [3, 5]]) 

Örnek 6: N-D dizisi için

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.unravel_index(np.argsort(a, axis=None), a.shape) indices a[indices] # same as np.sort(a, axis=None) 

Çıktı:

xdxd anlamı
 (array([0, 1, 1, 0], dtype=int64), array([0, 1, 0, 1], dtype=int64)) array([0, 2, 3, 5]) 

Yukarıdaki kodda

  • Numpy'yi np takma adıyla içe aktardık.
  • Np.array() fonksiyonunu kullanarak 2 boyutlu bir 'a' dizisi oluşturduk.
  • Bir 'indices' değişkeni tanımladık ve np.unravel_index() fonksiyonunun döndürülen değerini atadık.
  • np.argsort() fonksiyonunu ve 'a' dizisinin şeklini aktardık.
  • Argsort() fonksiyonunda 2 boyutlu 'a' dizisini ve eksenini 1 olarak geçtik.
  • Daha sonra indekslerin ve a[indekslerin] değerini yazdırmaya çalıştık.

Çıktıda, sıralanmış elemanlara sahip bir N-D dizisi gösterilmiştir.

Örnek 7: Tuşlarla sıralama

 import numpy as np a= np.array([(0, 5), (3, 2)], dtype=[(&apos;x&apos;, &apos; <i4'), ('y', ' <i4')]) a b="np.argsort(a," order="(&apos;x&apos;,&apos;y&apos;))" c="np.argsort(a," < pre> <p> <strong>Output:</strong> </p> <pre> array([(0, 5), (3, 2)], dtype=[(&apos;x&apos;, &apos; <i4'), ('y', ' <i4')]) array([0, 1], dtype="int64)" array([1, 0], < pre> <p> <strong>In the above code</strong> </p> <ul> <li>We have imported numpy with alias name np.</li> <li>We have created a 2-D array &apos;a&apos; using np.array() function with dtype=[(&apos;x&apos;, &apos; <i4'), ('y', ' <i4')].< li> <li>We have declared the variables &apos;b&apos; and &apos;c&apos; and assigned the returned value of np.argsort() function.</li> <li>We have passed the array &apos;a&apos; and order as an argument in the function.</li> <li>Lastly, we tried to print the value of &apos;b&apos; and &apos;c&apos;.</li> </i4'),></li></ul> <p>In the output, a sorted array has been shown with dtype=[(&apos;x&apos;, &apos; <i4'), ('y', ' <i4')]< p> <hr></i4'),></p></i4'),></pre></i4'),>