NumPy Apply funkcija

Numpy Apply Funkcija



Ugrađena biblioteka koju nudi Python, poznata kao NumPy, omogućuje nam konstruiranje višedimenzionalnih nizova, njihovu modifikaciju i izvođenje raznih aritmetičkih izračuna na njima. Funkciju primjene također nudi paket NumPy. Tipični slučaj upotrebe za funkciju primjene sličan je scenariju u kojem želimo izrezati niz i izvesti neke operacije na svakom elementu popisa, na primjer, ako želimo kvadrirat svaku stavku retka. Naravno, u Pythonu znamo da su for-petlje spore pa bismo ih htjeli izbjeći ako je moguće. Funkcija 'primijeni' može se koristiti ako želite izvršiti istu operaciju na svakom retku ili stupcu podatkovnog okvira. Drugim riječima, radi ono što želite s for-petljom bez potrebe za pisanjem for-petlje.

Postoje dvije metode za primjenu bilo koje funkcije na polje ovisno o stanju. Možemo primijeniti funkciju 'primijeni preko osi' koja je korisna kada primjenjujemo funkciju na svaki element niza jedan po jedan, a korisna je i za n-dimenzionalne nizove. Druga metoda je 'primijeni uzduž osi' koja se odnosi na jednodimenzionalni niz.

Sintaksa:

Metoda 1: Nanesite uzduž osi

numpy. primijeniti_duž_osi ( 1d_funkcija , os , arr , *args , **quargs )

U sintaksi imamo funkciju 'numpy.apply' kojoj prosljeđujemo pet argumenata. Prvi argument koji je '1d_function' radi na jednodimenzionalnom polju, što je potrebno. Dok je drugi argument, 'os', onaj na kojoj osi želite izrezati niz i primijeniti tu funkciju. Treći parametar je 'arr' koji je dani niz na koji želimo primijeniti funkciju. Dok su “*args” i “*kwargs” dodatni argumenti koje nije potrebno dodati.







Primjer 1:

Krećući se prema boljem razumijevanju metoda primjene, izvodimo primjer da provjerimo rad metoda primjene. U ovom slučaju izvodimo funkciju 'apply_along_Axis'. Prijeđimo na prvi korak. Prvo uključujemo naše NumPy biblioteke kao np. Zatim kreiramo niz pod nazivom 'arr' koji sadrži matricu 3×3 s cjelobrojnim vrijednostima koje su '8, 1, 7, 4, 3, 9, 5, 2 i 6'. U sljedećem retku stvaramo varijablu pod nazivom 'niz' koja je odgovorna za držanje rezultata funkcije apply_along_Axis.



Toj funkciji prosljeđujemo tri argumenta. Prva je funkcija koju želimo primijeniti na niz, u našem slučaju to je sortirana funkcija jer želimo da naš niz bude sortiran. Zatim prosljeđujemo drugi argument '1' što znači da želimo izrezati naš niz duž osi=1. Na kraju, prosljeđujemo polje koje treba sortirati u ovom slučaju. Na kraju koda jednostavno ispisujemo oba niza – originalni niz kao i rezultirajući niz – koji se prikazuju pomoću naredbe print().



uvoz numpy kao npr.

arr = npr. niz ( [ [ 8 , 1 , 7 ] , [ 4 , 3 , 9 ] , [ 5 , dva , 6 ] ] )

niz = npr. primijeniti_duž_osi ( sortirano , 1 , arr )

ispisati ( 'izvorni niz je:' , arr )

ispisati ( 'sortirani niz je:' , niz )





Kao što možemo vidjeti u sljedećem izlazu, prikazali smo oba niza. U prvom su vrijednosti nasumično postavljene u svaki redak matrice. Ali u drugom možemo vidjeti sortirani niz. Budući da smo prošli os '1', nije razvrstao cijeli niz, ali ga je razvrstao po redovima kako je prikazano. Svaki red je sortiran. Prvi red u zadanom nizu je “8, 1 i 7”. Dok je u sortiranom nizu, prvi red je '1, 7 i 8'. Isto kao i ovaj, svaki je red sortiran.



Metoda 2: Nanesite preko osi

numpy. primijeniti_preko_osi ( funk , a , sjekire )

U danoj sintaksi imamo funkciju numpy.apply_over_axis koja je odgovorna za primjenu funkcije na danoj osi. Unutar funkcije apply_over_axis prosljeđujemo tri argumenta. Prva je funkcija koju treba obavljati. Drugi je sam niz. I zadnja je os na koju želimo primijeniti funkciju.

Primjer 2:

U sljedećem primjeru izvodimo drugu metodu funkcije 'primijeni' u kojoj izračunavamo zbroj trodimenzionalnog niza. Jedna stvar koju treba zapamtiti je da zbroj dva niza ne znači da izračunavamo cijeli niz. U nekim nizovima izračunavamo zbroj redova, što znači da zbrajamo retke i iz njih dobivamo jedan element.

Idemo naprijed na naš kod. Prvo uvozimo paket NumPy, a zatim kreiramo varijablu koja sadrži trodimenzionalni niz. U našem slučaju, varijabla je 'arr'. U sljedećem retku stvaramo drugu varijablu koja sadrži rezultirajući niz funkcije apply_over_axis. Funkciju apply_over_Axis dodjeljujemo varijabli “arr” s tri argumenta. Prvi argument je ugrađena funkcija NumPy za izračunavanje zbroja koji je np.sum. Drugi parametar je sam niz. Treći argument je os na koju se funkcija primjenjuje, u ovom slučaju imamo os “[0, 2]”. Na kraju koda izvršavamo oba niza pomoću naredbe print().

uvoz numpy kao npr.

arr = npr. niz ( [ [ [ 6 , 12 , dva ] , [ dva , 9 , 6 ] , [ 18 , 0 , 10 ] ] ,

[ [ 12 , 7 , 14 ] , [ dva , 17 , 18 ] , [ 0 , dvadeset i jedan , 8 ] ] ] )

niz = npr. primijeniti_preko_osi ( npr. iznos , arr , [ 0 , dva ] )

ispisati ( 'izvorni niz je:' , arr )

ispisati ( 'zbroj niza je:' , niz )

Kao što je prikazano na sljedećoj slici, izračunali smo neke od naših trodimenzionalnih nizova pomoću funkcije apply_over_axis. Prvi prikazani niz je izvorni niz u obliku '2, 3, 3', a drugi je zbroj redaka. Zbroj u prvom redu je “53”, u drugom je “54” i u posljednjem je “57”.

Zaključak

U ovom smo članku proučavali kako se funkcija primjene koristi u NumPyju i kako možemo primijeniti različite funkcije na nizove duž ili iznad osi. Lako je primijeniti bilo koju funkciju na željeni redak ili stupac tako što ćete ih izrezati pomoću metoda 'primjene' koje nudi NumPy. To je učinkovit način kada ga ne moramo primijeniti na cijeli niz. Nadamo se da će vam ovaj post biti koristan za učenje kako se koristiti metodom prijave.