logo

numpy.argsort() Python

NumPy modulis pateikia funkciją argsort(), grąžina indeksus, kurie surūšiuotų masyvą.

NumPy modulis suteikia funkciją atlikti netiesioginį rūšiavimą kartu su nurodyta ašimi, naudojant raktinio žodžio nurodytą algoritmą. Ši funkcija grąžina tokios pačios formos indeksų masyvą kaip „a“, kuris surūšiuotų masyvą.

Sintaksė

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

Parametrai

Tai yra šie parametrai numpy.argsort() funkcijoje:

įjungti java

a: array_like

Šis parametras apibrėžia šaltinio masyvą, kurį norime rūšiuoti.

ašis: vidinė arba nėra (nebūtina)

Šis parametras apibrėžia ašį, pagal kurią atliekamas rūšiavimas. Pagal numatytuosius nustatymus ašis yra -1. Jei šį parametrą nustatysime į None, bus naudojamas išlygintas masyvas.

rūšis: {'quicksort','mergesort','heapsort','stable'} (pasirenkama)

Šis parametras apibrėžia rūšiavimo algoritmą. Pagal numatytuosius nustatymus algoritmas yra greitas rūšiavimas . Abu mergesort ir stabilus naudoja laiko rūšiavimą po antklode. Faktinis diegimas skirsis priklausomai nuo duomenų tipo. The mergesort parinktis išlaikoma atgaliniam suderinamumui.

tvarka: str arba str sąrašas (neprivaloma)

Jei „a“ yra masyvas su apibrėžtais laukais, šis argumentas nurodo, kuriuos laukus reikia palyginti pirmą, antrą ir t. t. Vieną lauką galima nurodyti kaip eilutę, o ne visus laukus reikia nurodyti. Tačiau nenustatyti laukai vis tiek bus naudojami tokia tvarka, kokia jie atsiranda dtype, kad nutrauktų ryšius.

java skaityti csv failą

Grąžina: index_masyvas: ndarray, int

Ši funkcija grąžina indeksų masyvą, kuris rūšiuoja „a“ kartu su nurodyta ašimi. Jei „a“ yra 1-D, a[indekso_masyvas] pateikia surūšiuotą „a“. Plačiau, np.take_along_axis(arr1, index_masyvas, axis = ašis) visada pateikia surūšiuotą „a“, neatsižvelgiant į matmenis.

1 pavyzdys: np.argsort()

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

Aukščiau pateiktame kode

  • Mes importavome numpy su slapyvardžiu np.
  • Sukūrėme masyvą „a“ naudodami funkciją np.array().
  • Mes paskelbėme kintamąjį „b“ ir priskyrėme grąžintą funkcijos np.argsort() reikšmę.
  • Funkcijoje perdavėme masyvą „a“.
  • Galiausiai bandėme atspausdinti b reikšmę.

Išvestyje buvo parodytas ndarray, kuriame yra indeksai (nurodykite elemento padėtį surūšiuotame masyve) ir dtype.

Išvestis:

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

2 pavyzdys: 2D masyvui (rūšiuojama pagal pirmą ašį (žemyn))

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

Išvestis:

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

3 pavyzdys: 2-D masyvo (ašies alternatyva = 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) 

Aukščiau pateiktame kode

  • Mes importavome numpy su slapyvardžiu np.
  • Naudodami funkciją np.array() sukūrėme 2-D masyvą „a“.
  • Deklaravome kintamuosius indeksus ir priskyrėme grąžintą funkcijos np.argsort() reikšmę.
  • Mes perdavėme 2-D masyvą „a“ ir ašį kaip 0.
  • Tada panaudojome take_along_axis() funkciją ir perdavėme šaltinio masyvą, indeksus ir ašį.
  • Ši funkcija grąžino surūšiuotą 2-D masyvą.

Išvestyje parodytas 2-D masyvas su surūšiuotais elementais.

c

Išvestis:

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

4 pavyzdys: 2D masyvui (rūšiuojama pagal paskutinę ašį (skersą))

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

Išvestis:

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

5 pavyzdys: 2-D masyvo (ašies alternatyva = 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) 

Išvestis:

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

6 pavyzdys: N-D masyvai

 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) 

Išvestis:

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

Aukščiau pateiktame kode

  • Mes importavome numpy su slapyvardžiu np.
  • Naudodami funkciją np.array() sukūrėme 2-D masyvą „a“.
  • Mes paskelbėme kintamąjį 'indexes' ir priskyrėme grąžintą funkcijos np.unravel_index() reikšmę.
  • Mes išlaikėme np.argsort() funkciją ir masyvo „a“ formą.
  • Mes perdavėme 2-D masyvą „a“ ir ašį kaip 1 argsort() funkcijoje.
  • Toliau bandėme atspausdinti indeksų ir a[indeksų] vertę.

Išvestyje parodytas N-D masyvas su surūšiuotais elementais.

šriftas gimp

7 pavyzdys: Rūšiavimas naudojant klavišus

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