logo

numpy.argsort() w Pythonie

Moduł NumPy udostępnia funkcję argsort(), która zwraca indeksy, które posortowałyby tablicę.

Moduł NumPy udostępnia funkcję umożliwiającą wykonanie sortowania pośredniego wzdłuż zadanej osi za pomocą algorytmu określonego słowem kluczowym. Ta funkcja zwraca tablicę indeksów o tym samym kształcie co „a”, co powoduje posortowanie tablicy.

Składnia

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

Parametry

Oto następujące parametry funkcji numpy.argsort():

znaczenie komisji selekcyjnej personelu

a: tablica_podobna

Parametr ten definiuje tablicę źródłową, którą chcemy posortować.

oś: int lub None (opcjonalnie)

Parametr ten określa oś, wzdłuż której wykonywane jest sortowanie. Domyślnie oś ma wartość -1. Jeśli ustawimy ten parametr na None, używana będzie spłaszczona tablica.

rodzaj: {'szybkie sortowanie','sortowanie przez scalanie','sortowanie na stercie','stable'} (opcjonalnie)

Parametr ten określa algorytm sortowania. Domyślnie algorytm jest taki szybkie sortowanie . Obydwa sortowanie przez scalanie I stabilny korzystają z sortowania według czasu pod kołdrą. Rzeczywista implementacja będzie się różnić w zależności od typu danych. The sortowanie przez scalanie opcja została zachowana ze względu na kompatybilność wsteczną.

wątek.zniszcz

kolejność: str lub lista str (opcjonalnie)

Jeśli „a” jest tablicą ze zdefiniowanymi polami, ten argument określa, które pola mają być porównywane jako pierwsze, drugie itd. Pojedyncze pole można określić jako ciąg znaków i nie trzeba podawać wszystkich pól. Jednak nieokreślone pola będą nadal używane, w kolejności, w jakiej pojawiają się w typie d, do przerywania powiązań.

Zwraca: tablica_indeksowa: ndarray, int

Ta funkcja zwraca tablicę indeksów, które sortują „a” wzdłuż określonej osi. Jeśli „a” ma wartość 1-D, a[index_array] zwraca posortowane „a”. Bardziej ogólnie, np.take_along_axis(arr1, tablica indeksu, oś=oś) zawsze daje posortowane „a”, niezależnie od wymiarowości.

Przykład 1: np.argsort()

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

W powyższym kodzie

  • Zaimportowaliśmy numpy z aliasem np.
  • Utworzyliśmy tablicę „a” za pomocą funkcji np.array().
  • Zadeklarowaliśmy zmienną „b” i przypisaliśmy wartość zwróconą przez funkcję np.argsort().
  • W funkcji przekazaliśmy tablicę „a”.
  • Na koniec próbowaliśmy wydrukować wartość b.

Na wyjściu pokazano ndarray, który zawiera indeksy (wskazujące pozycję elementu posortowanej tablicy) i typ d.

Java konwertuje ciąg na int

Wyjście:

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

Przykład 2: Dla tablicy 2-D (sortuje wzdłuż pierwszej osi (w dół))

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

Wyjście:

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

Przykład 3: Dla tablicy 2-D (alternatywa dla osi=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) 

W powyższym kodzie

  • Zaimportowaliśmy numpy z aliasem np.
  • Utworzyliśmy tablicę 2-D „a” za pomocą funkcji np.array().
  • Zadeklarowaliśmy indeksy zmiennych i przypisaliśmy wartość zwróconą przez funkcję np.argsort().
  • Przekazaliśmy tablicę 2-D „a” i oś jako 0.
  • Następnie użyliśmy funkcji take_along_axis() i przekazaliśmy tablicę źródłową, indeksy i oś.
  • Ta funkcja zwróciła posortowaną tablicę 2-D.

Na wyjściu pokazano tablicę 2-D z posortowanymi elementami.

Wyjście:

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

Przykład 4: Dla tablicy 2-D (sortuje wzdłuż ostatniej osi (w poprzek))

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

Wyjście:

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

Przykład 5: Dla tablicy 2-D (alternatywa dla osi=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) 

Wyjście:

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

Przykład 6: Dla tablicy N-D

 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) 

Wyjście:

ciąg zastępuje Java
 (array([0, 1, 1, 0], dtype=int64), array([0, 1, 0, 1], dtype=int64)) array([0, 2, 3, 5]) 

W powyższym kodzie

  • Zaimportowaliśmy numpy z aliasem np.
  • Utworzyliśmy tablicę 2-D „a” za pomocą funkcji np.array().
  • Zadeklarowaliśmy zmienną 'indices' i przypisaliśmy wartość zwróconą przez funkcję np.unravel_index().
  • Przekazaliśmy funkcję np.argsort() i kształt tablicy „a”.
  • Przekazaliśmy tablicę 2-D „a” i oś jako 1 w funkcji argsort().
  • Następnie próbowaliśmy wydrukować wartość indeksów i a[indexes].

Na wyjściu pokazano tablicę N-D z posortowanymi elementami.

Przykład 7: Sortowanie za pomocą kluczy

 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'),>