Modulul numpy din Python oferă o funcție pentru găsirea elementelor unice într-o matrice numpy. Funcția numpy.unique() găsește elementele unice ale unui tablou și returnează aceste elemente unice ca o matrice sortată. Pe lângă elementele unice, există și câteva ieșiri opționale, care sunt după cum urmează:
- Ieșirea pot fi indicii matricei de intrare care dau valorile unice
- Ieșirea pot fi indicii matricei unice care reconstruiesc tabloul de intrare
- Ieșirea poate fi o matrice de câte ori fiecare valoare unică vine în matricea de intrare.
Sintaxă
numpy.unique(a, return_index=False, return_inverse=False, return_counts=False, axis=None)
Parametrii
Aceștia sunt următorii parametri în funcția numpy.mean():
a: array_like
Acest parametru definește matricea sursă care conține elemente ale căror valori unice sunt dorite. Matricea va fi aplatizată dacă nu este o matrice 1-D.
Return_index: bool (opțional)
textul îngroșat în css
Dacă acest parametru este setat True, funcția va returna indicii matricei de intrare (de-a lungul axei specificate dacă este furnizat sau în matricea aplatizată), ceea ce are ca rezultat matricea unică.
return_inverse: bool (opțional)
Dacă acest parametru este setat True, funcția va returna și indicii matricei de intrare (de-a lungul axei specificate dacă este furnizat sau în matricea aplatizată), care poate fi folosit pentru a reconstrui matricea de intrare.
Return_counts: bool (opțional)
dimensiunea textului din latex
Dacă acest parametru este setat True, funcția va returna de câte ori a apărut fiecare element unic în matricea de intrare „a”.
axa: int sau None (opțional)
Acest parametru definește axa pe care se va opera. Dacă acest parametru nu este setat, atunci matricea „a” va fi aplatizată. Dacă acest parametru este un număr întreg, atunci sub-tabele indexate de axa dată vor fi aplatizate și tratate ca un element al unui tablou 1-D cu dimensiunea axei date. Matricele structurate sau matricele de obiecte care conțin obiecte nu sunt acceptate dacă este utilizată axa „kwarg”.
Se intoarce
Această funcție returnează patru tipuri de ieșiri, care sunt după cum urmează:
unic: ndarray
În această ieșire, va fi afișat un ndarray care conține valori unice sortate.
indicii_unici: ndarray (opțional)
În această ieșire, va fi afișat un ndarray care conține indicii primelor apariții ale valorilor unice din tabloul original. Această ieșire este furnizată numai dacă return_index este True.
unic_inverse: ndarray (opțional)
În această ieșire, va fi afișat un ndarray care conține indicii pentru a reconstrui matricea originală din matricea unică. Această ieșire este furnizată numai dacă return_inverse este True.
unice_counts: ndarray (opțional)
În această ieșire, va fi afișat un ndarray care conține de câte ori apare fiecare dintre valorile unice în tabloul original. Această ieșire este furnizată numai dacă return_counts este True.
harald baldr
Exemplul 1:
import numpy as np a=np.unique([1,2,3,4,3,6,2,4]) a
Ieșire:
array([1, 2, 3, 4, 6])
În codul de mai sus
- Am importat numpy cu numele de alias np.
- Am declarat variabila „a” și am atribuit valoarea returnată a funcției np.unique().
- Am trecut numărul de elemente din funcție.
- În cele din urmă, am încercat să tipărim valoarea lui „a”.
În rezultat, a fost afișat un ndarray, care conține elemente unice.
Exemplul 2:
a=np.array([[1,2,2,3,9],[1,4,3,5,8]]) a b=np.unique(a) b
Ieșire:
array([[1, 2, 2, 3, 9], [1, 4, 3, 5, 8]]) array([1, 2, 3, 4, 5, 8, 9])
Exemplul 3:
import numpy as np a = np.array([[1, 1, 0], [1, 1, 0], [2, 3, 4],[5, 9, 8],[2, 3, 4]]) a b=np.unique(a, axis=0) b
Ieșire:
cum se schimbă șirul în int
array([[1, 1, 0], [1, 1, 0], [2, 3, 4], [5, 9, 8], [2, 3, 4]]) array([[1, 1, 0], [2, 3, 4], [5, 9, 8]])
În codul de mai sus
- Am importat numpy cu numele de alias np.
- Am creat o matrice multidimensională „a”.
- Am declarat variabila „b” și am atribuit valoarea returnată a funcției np.unique().
- Am trecut matricea multidimensională „a” și axa ca 0 în funcție.
- În cele din urmă, am încercat să tipărim valoarea lui „b”.
În rezultat, a fost arătat un ndarray care conține rânduri unice ale matricei sursă „a”.
Exemplul 4:
import numpy as np a = np.array([[1, 1, 0], [1, 1, 0], [2, 2, 4],[5, 5, 8],[2, 2, 4]]) a b=np.unique(a, axis=1) b
Ieșire:
array([[1, 1, 0], [1, 1, 0], [2, 2, 4], [5, 5, 8], [2, 2, 4]]) array([[0, 1], [0, 1], [4, 2], [8, 5], [4, 2]])
Notă: Când setăm axa ca 1, atunci această funcție returnează coloanele unice din tabloul sursă.
Exemplul 5: Utilizați return_index
import numpy as np a = np.array(['d', 'b', 'b', 'z', 'a']) result, indices=np.unique(a,return_index=True) result indices a[indices]
Ieșire:
array(['a', 'b', 'd', 'z'], dtype='|S1') array([4, 1, 0, 3], dtype=int64) array(['a', 'b', 'd', 'z'], dtype='|S1')
În codul de mai sus
- Am importat numpy cu numele de alias np.
- Am creat o matrice „a”.
- Am declarat variabila „rezultat” și „indici” și am atribuit valoarea returnată a funcției np.unique().
- Am trecut matricea „a” și am stabilit return_index la True în funcție.
- În cele din urmă, am încercat să tipărim valoarea „rezultat”, „indici” și elemente de matrice, care indică indicii („a [indici]”).
În ieșire, a fost arătat un ndarray care conține indicii tabloului original care dau valori unice.
Exemplul 6: Utilizați return_inverse
Putem reconstrui matricea de intrare din valorile unice în următorul mod:
import numpy as np a = np.array([1, 2, 6, 4, 5, 3, 2]) result, indices=np.unique(a,return_inverse=True) result indices a[indices]
Ieșire:
array([1, 2, 3, 4, 5, 6]) array([0, 1, 5, 3, 4, 2, 1], dtype=int64) array([1, 2, 3, 4, 5, 6, 2])