NumPy Anvend funktion

Numpy Anvend Funktion



Det indbyggede bibliotek, der tilbydes af Python, kendt som NumPy, giver os mulighed for at konstruere de multidimensionelle arrays, ændre dem og udføre forskellige aritmetiske beregninger på dem. Apply-funktionen leveres også af NumPy-pakken. Den typiske brugssituation for appliceringsfunktionen ligner scenariet, hvor vi ønsker at opdele et array og udføre nogle operationer på hvert element i en liste, for eksempel hvis vi ønsker at firkante hvert element i en række. Selvfølgelig ved vi i Python, at for-loops er langsomme, så vi vil gerne undgå dem, hvis det er muligt. Funktionen 'anvend' kan bruges, hvis du ønsker at udføre den samme handling på hver række eller kolonne i en dataramme. Med andre ord, det gør, hvad du vil med en for-loop uden at skulle skrive en for-loop.

Der er to metoder til at anvende enhver funktion på arrayet afhængigt af tilstanden. Vi kan anvende funktionen 'anvend over aksen', som er nyttig, når vi anvender funktionen på hvert element i arrayet en efter en, og den er nyttig for de n-dimensionelle arrays. Den anden metode er 'påfør langs aksen', som gælder for et endimensionelt array.

Syntaks:

Metode 1: Påfør langs aksen

nusset. anvende_langs_aksen ( 1d_funktion , akse , arr , *args , **kvarger )

I syntaksen har vi funktionen 'numpy.apply', som vi sender fem argumenter til. Det første argument, som er '1d_function', fungerer på det endimensionelle array, som er påkrævet. Mens det andet argument, 'aksen', er den, på hvilken akse du vil opdele arrayet og anvende den funktion. Den tredje parameter er 'arr', som er den givne matrix, som vi ønsker at anvende funktionen på. Mens '*args' og '*kwargs' er de yderligere argumenter, der ikke er nødvendige at tilføje.







Eksempel 1:

På vej mod en bedre forståelse af 'anvend'-metoderne udfører vi et eksempel for at kontrollere, hvordan anvendelsesmetoderne fungerer. I dette tilfælde udfører vi funktionen 'anvend_langs_akse'. Lad os fortsætte til vores første skridt. Vi inkluderer først vores NumPy-biblioteker som np. Og så opretter vi en matrix ved navn 'arr', der indeholder en 3×3 matrix med heltalsværdier, som er '8, 1, 7, 4, 3, 9, 5, 2 og 6'. I den næste linje opretter vi en variabel ved navn 'array', som er ansvarlig for at holde resultatet af funktionen apply_along_Axis.



Til den funktion sender vi tre argumenter. Den første er den funktion, vi ønsker at anvende på arrayet, i vores tilfælde er det den sorterede funktion, fordi vi ønsker, at vores array skal sorteres. Derefter sender vi det andet argument '1', hvilket betyder, at vi ønsker at skære vores array langs akse=1. Til sidst, vi passerer det array, der skal sorteres i dette tilfælde. I slutningen af ​​koden udskriver vi simpelthen begge arrays – det originale array såvel som det resulterende array – som vises ved hjælp af print()-sætningen.



importere nusset som for eksempel.

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

array = for eksempel. anvende_langs_aksen ( sorteret , 1 , arr )

Print ( 'det originale array er:' , arr )

Print ( 'det sorterede array er:' , array )





Som vi kan se i det følgende output, viste vi begge arrays. I den første er værdierne tilfældigt placeret i hver række af matricen. Men i den anden kan vi se det sorterede array. Siden vi passerede aksen '1', har den ikke sorteret hele arrayet, men den sorterede den rækkevis som vist. Hver række er sorteret. Den første række i det givne array er '8, 1 og 7'. Mens den er i det sorterede array, er den første række '1, 7 og 8'. På samme måde er hver række sorteret.



Metode 2: Påfør over aksen

nusset. anvende_over_akser ( func , -en , akser )

I den givne syntaks har vi numpy.apply_over_axis funktion, som er ansvarlig for at anvende funktionen på den givne akse. Inde i funktionen anvende_over_akse sender vi tre argumenter. Den første er den funktion, der skal udføres. Den anden er selve arrayet. Og den sidste er den akse, som vi ønsker at anvende funktionen på.

Eksempel 2:

I det følgende tilfælde udfører vi den anden metode til 'anvend'-funktionen, hvor vi beregner summen af ​​det tredimensionelle array. En ting at huske er, at summen af ​​to arrays ikke betyder, at vi beregner hele arrayet. I nogle af arrays beregner vi den rækkevise sum, hvilket betyder, at vi lægger rækkerne sammen og får det enkelte element ud af dem.

Lad os gå videre til vores kode. Vi importerer først NumPy-pakken og opretter derefter en variabel, der indeholder det tredimensionelle array. I vores tilfælde er variablen 'arr'. I den næste linje opretter vi en anden variabel, der indeholder appliceringsover_akse-funktionens resulterende array. Vi tildeler funktionen apply_over_Axis til variablen 'arr' med tre argumenter. Det første argument er NumPys indbyggede funktion til at beregne summen, som er np.sum. Den anden parameter er selve arrayet. Det tredje argument er den akse, som funktionen anvendes over, i dette tilfælde har vi '[0, 2]'-aksen. I slutningen af ​​koden udfører vi begge arrays ved hjælp af print()-sætningen.

importere nusset som for eksempel.

arr = for eksempel. array ( [ [ [ 6 , 12 , to ] , [ to , 9 , 6 ] , [ 18 , 0 , 10 ] ] ,

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

array = for eksempel. anvende_over_akser ( for eksempel. sum , arr , [ 0 , to ] )

Print ( 'det originale array er:' , arr )

Print ( 'summen af ​​array er:' , array )

Som vist i den følgende figur, beregnede vi nogle af vores tredimensionelle arrays ved hjælp af funktionen application_over_axis. Den først viste matrix er den originale matrix med formen '2, 3, 3', og den anden er summen af ​​rækkerne. Summen af ​​første række er '53', den anden er '54', og den sidste er '57'.

Konklusion

I denne artikel har vi undersøgt, hvordan appliceringsfunktionen bruges i NumPy, og hvordan vi kan anvende de forskellige funktioner på arrays langs eller over aksen. Det er nemt at anvende enhver funktion på den ønskede række eller kolonne ved at skære dem i skiver ved at bruge 'anvend'-metoderne fra NumPy. Det er en effektiv måde, når vi ikke behøver at anvende det på hele arrayet. Vi håber, at du finder dette indlæg nyttigt for at lære, hvordan du bruger anvendelsesmetoden.