NumPy Apply-funksjon

Numpy Apply Funksjon



Det innebygde biblioteket som tilbys av Python, kjent som NumPy, lar oss konstruere de flerdimensjonale matrisene, modifisere dem og utføre forskjellige aritmetiske beregninger på dem. Apply-funksjonen leveres også av NumPy-pakken. Den typiske brukssaken for bruk-funksjonen ligner på scenariet der vi ønsker å dele opp en matrise og utføre noen operasjoner på hvert element i en liste, for eksempel hvis vi ønsker å kvadrere hvert element i en rad. Selvfølgelig, i Python, vet vi at for-løkker er trege, så vi vil gjerne unngå dem hvis mulig. 'Bruk'-funksjonen kan brukes hvis du vil gjøre den samme operasjonen på hver rad eller kolonne i en dataramme. Med andre ord, den gjør det du vil med en for-løkke uten å måtte skrive en for-løkke.

Det er to metoder for å bruke hvilken som helst funksjon på matrisen, avhengig av tilstanden. Vi kan bruke funksjonen 'bruk over aksen', som er nyttig når vi bruker funksjonen på hvert element i matrisen en etter en, og den er nyttig for de n-dimensjonale matrisene. Den andre metoden er 'påfør langs aksen' som gjelder en endimensjonal matrise.

Syntaks:

Metode 1: Påfør langs aksen

nusset. bruk_langs_aksen ( 1d_funksjon , akser , arr , *args , **kvarger )

I syntaksen har vi funksjonen 'numpy.apply' som vi sender fem argumenter til. Det første argumentet som er '1d_function' opererer på den endimensjonale matrisen, som er nødvendig. Mens det andre argumentet, 'aksen', er den på hvilken akse du vil dele opp matrisen og bruke den funksjonen. Den tredje parameteren er 'arr' som er den gitte matrisen vi ønsker å bruke funksjonen på. Mens '*args' og '*kwargs' er tilleggsargumentene som ikke er nødvendige å legge til.







Eksempel 1:

For å bevege oss mot en bedre forståelse av 'anvend'-metodene, utfører vi et eksempel for å sjekke hvordan bruksmetodene fungerer. I dette tilfellet utfører vi funksjonen «apply_along_Axis». La oss gå videre til vårt første trinn. Vi inkluderer først NumPy-bibliotekene våre som np. Og så lager vi en matrise kalt 'arr' som inneholder en 3×3 matrise med heltallsverdier som er '8, 1, 7, 4, 3, 9, 5, 2 og 6'. I neste linje lager vi en variabel kalt 'array' som er ansvarlig for å holde resultatet av funksjonen apply_along_Axis.



Til den funksjonen sender vi tre argumenter. Den første er funksjonen som vi ønsker å bruke på matrisen, i vårt tilfelle er det den sorterte funksjonen fordi vi vil at vår matrise skal sorteres. Deretter sender vi det andre argumentet '1', som betyr at vi ønsker å skjære arrayet vårt langs akse=1. Til slutt, vi passerer matrisen som skal sorteres i dette tilfellet. På slutten av koden skriver vi ganske enkelt ut begge matrisene – den originale matrisen så vel som den resulterende matrisen – som vises ved hjelp av print()-setningen.



import nusset som f.eks.

arr = f.eks. array ( [ [ 8 , 1 , 7 ] , [ 4 , 3 , 9 ] , [ 5 , to , 6 ] ] )

array = f.eks. bruk_langs_aksen ( sortert , 1 , arr )

skrive ut ( 'den originale matrisen er:' , arr )

skrive ut ( 'den sorterte matrisen er:' , array )





Som vi kan se i følgende utgang, viste vi begge matrisene. I den første er verdiene tilfeldig plassert i hver rad i matrisen. Men i den andre kan vi se den sorterte matrisen. Siden vi passerte aksen '1', har den ikke sortert hele matrisen, men den sorterte den radvis som vist. Hver rad er sortert. Den første raden i den gitte matrisen er '8, 1 og 7'. Mens du er i den sorterte matrisen, er den første raden '1, 7 og 8'. På samme måte som dette, er hver rad sortert.



Metode 2: Påfør over aksen

nusset. bruk_over_akser ( func , en , økser )

I den gitte syntaksen har vi funksjonen numpy.apply_over_axis som er ansvarlig for å bruke funksjonen på den gitte aksen. Inne i funksjonen anvende_over_akse sender vi tre argumenter. Den første er funksjonen som skal utføres. Den andre er selve arrayen. Og den siste er aksen som vi ønsker å bruke funksjonen på.

Eksempel 2:

I det følgende tilfellet utfører vi den andre metoden for 'bruk'-funksjonen der vi beregner summen av den tredimensjonale matrisen. En ting å huske er at summen av to matriser ikke betyr at vi beregner hele matrisen. I noen av arrayene regner vi ut den radvise summen som betyr at vi legger sammen radene og får enkeltelementet ut av dem.

La oss gå videre til koden vår. Vi importerer først NumPy-pakken og lager deretter en variabel som inneholder den tredimensjonale matrisen. I vårt tilfelle er variabelen 'arr'. I neste linje lager vi en annen variabel som inneholder appliceringsover_akse-funksjonens resulterende matrise. Vi tildeler funksjonen application_over_Axis til variabelen 'arr' med tre argumenter. Det første argumentet er NumPys innebygde funksjon for å beregne summen som er np.sum. Den andre parameteren er selve matrisen. Det tredje argumentet er aksen som funksjonen brukes over, i dette tilfellet har vi '[0, 2]'-aksen. På slutten av koden kjører vi begge matrisene ved å bruke print()-setningen.

import nusset som f.eks.

arr = f.eks. array ( [ [ [ 6 , 12 , to ] , [ to , 9 , 6 ] , [ 18 , 0 , 10 ] ] ,

[ [ 12 , 7 , 14 ] , [ to , 17 , 18 ] , [ 0 , tjueen , 8 ] ] ] )

array = f.eks. bruk_over_akser ( f.eks. sum , arr , [ 0 , to ] )

skrive ut ( 'den originale matrisen er:' , arr )

skrive ut ( 'summen av matrisen er:' , array )

Som vist i den følgende figuren, beregnet vi noen av våre tredimensjonale arrays ved å bruke funksjonen application_over_axis. Den først viste matrisen er den originale matrisen med formen '2, 3, 3', og den andre er summen av radene. Summen av første rad er '53', den andre er '54' og den siste er '57'.

Konklusjon

I denne artikkelen studerte vi hvordan appliceringsfunksjonen brukes i NumPy og hvordan vi kan bruke de forskjellige funksjonene på arrays langs eller over aksen. Det er enkelt å bruke hvilken som helst funksjon på ønsket rad eller kolonne ved å kutte dem ved å bruke 'apply'-metodene levert av NumPy. Det er en effektiv måte når vi ikke trenger å bruke den på hele matrisen. Vi håper du finner dette innlegget nyttig for å lære hvordan du kan bruke søknadsmetoden.