logo

numpy.argsort() programmā Python

Modulis NumPy nodrošina funkciju argsort(), atgriež indeksus, kas kārtotu masīvu.

Modulis NumPy nodrošina funkciju netiešās kārtošanas veikšanai kopā ar doto asi ar atslēgvārda norādītā algoritma palīdzību. Šī funkcija atgriež tādas pašas formas indeksu masīvu kā “a”, kas kārtotu masīvu.

Sintakse

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

Parametri

Šie ir šādi parametri funkcijā numpy.argsort():

vārdnīcas inicializators c#

a: masīva_līdzīgs

Šis parametrs nosaka avota masīvu, kuru mēs vēlamies kārtot.

ass: iekšējais vai nav (pēc izvēles)

Šis parametrs nosaka asi, pa kuru tiek veikta šķirošana. Pēc noklusējuma ass ir -1. Ja šo parametru iestatām uz Nav, tiek izmantots saplacināts masīvs.

pārvērst par dubulto java

veids: {'quicksort','mergesort','heapsort','stable'} (neobligāti)

Šis parametrs nosaka kārtošanas algoritmu. Pēc noklusējuma algoritms ir ātrā šķirošana . Abi apvienot un stabils izmanto laika šķirošanu zem segas. Faktiskā ieviešana mainīsies atkarībā no datu veida. The apvienot opcija tiek saglabāta atpakaļejošai saderībai.

secība: str vai str saraksts (pēc izvēles)

Ja “a” ir masīvs ar definētiem laukiem, šis arguments norāda, kurus laukus salīdzināt vispirms, otros utt. Atsevišķu lauku var norādīt kā virkni, un ne visi lauki ir jānorāda. Taču nenorādītie lauki joprojām izmantos to secībā, kādā tie parādās dtype, lai pārtrauktu saites.

Atgriež: index_array: ndarray, int

Šī funkcija atgriež indeksu masīvu, kas kārto “a” kopā ar norādīto asi. Ja 'a' ir 1-D, a[index_array] iegūst sakārtotu 'a'. Vispārīgāk, np.take_along_axis(arr1, index_array, axis=axis) vienmēr iegūst sakārtoto “a” neatkarīgi no dimensijas.

1. piemērs: np.argsort()

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

Iepriekš minētajā kodā

poga, lai centrētu css
  • Mēs esam importējuši numpy ar aizstājvārdu np.
  • Mēs esam izveidojuši masīvu 'a', izmantojot funkciju np.array().
  • Mēs esam deklarējuši mainīgo 'b' un piešķīruši np.argsort() atgriezto vērtību.
  • Funkcijā esam izturējuši masīvu “a”.
  • Visbeidzot, mēs mēģinājām izdrukāt b vērtību.

Izvadā ir parādīts ndarray, kas satur indeksus (norāda elementa pozīciju sakārtotajam masīvam) un dtype.

Izvade:

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

2. piemērs: 2-D masīvam (šķiro pa pirmo asi (uz leju))

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

Izvade:

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

3. piemērs: 2-D masīvam (ass alternatīva =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) 

Iepriekš minētajā kodā

  • Mēs esam importējuši numpy ar aizstājvārdu np.
  • Mēs esam izveidojuši 2-D masīvu 'a', izmantojot funkciju np.array().
  • Mēs esam deklarējuši mainīgos indeksus un piešķīruši funkcijas np.argsort() atgriezto vērtību.
  • Mēs esam izturējuši 2-D masīvu “a” un asi kā 0.
  • Tālāk mēs izmantojām funkciju take_along_axis() un nodevām avota masīvu, indeksus un asi.
  • Šī funkcija ir atgriezusi sakārtoto 2-D masīvu.

Izvadē ir parādīts 2-D masīvs ar sakārtotiem elementiem.

Izvade:

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

4. piemērs: 2-D masīvam (šķiro pa pēdējo asi (pāri))

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

Izvade:

ievietošanas kārtošanas algoritms
 array([[0, 1], [1, 0]], dtype=int64) 

5. piemērs: 2-D masīvam (ass alternatīva =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) 

Izvade:

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

6. piemērs: N-D masīvam

 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) 

Izvade:

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

Iepriekš minētajā kodā

  • Mēs esam importējuši numpy ar aizstājvārdu np.
  • Mēs esam izveidojuši 2-D masīvu 'a', izmantojot funkciju np.array().
  • Mēs esam deklarējuši mainīgo 'indexes' un piešķīruši funkcijas np.unravel_index() atgriezto vērtību.
  • Mēs esam izturējuši np.argsort() funkciju un masīva 'a' formu.
  • Mēs esam izturējuši 2-D masīvu “a” un asi kā 1 funkcijā argsort().
  • Tālāk mēs mēģinājām izdrukāt indeksu un a[indeksu] vērtību.

Izvadā ir parādīts N-D masīvs ar sakārtotiem elementiem.

7. piemērs. Kārtošana ar taustiņiem

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