NumPy functie toepassen

Numpy Functie Toepassen



De ingebouwde bibliotheek die wordt aangeboden door Python, bekend als NumPy, stelt ons in staat om de multidimensionale arrays te construeren, te wijzigen en er verschillende rekenkundige berekeningen op uit te voeren. De functie Toepassen wordt ook geleverd door het NumPy-pakket. De typische use-case voor de functie Apply is vergelijkbaar met het scenario waarin we een array willen segmenteren en enkele bewerkingen op elk element van een lijst willen uitvoeren, bijvoorbeeld als we elk item van een rij willen afvlakken. Natuurlijk weten we in Python dat for-loops traag zijn, dus we willen ze indien mogelijk vermijden. De functie 'Toepassen' kan worden gebruikt als u dezelfde bewerking op elke rij of kolom van een gegevensframe wilt uitvoeren. Met andere woorden, het doet wat je wilt doen met een for-loop zonder een for-loop te hoeven schrijven.

Er zijn twee methoden om een ​​functie op de array toe te passen, afhankelijk van de voorwaarde. We kunnen de functie 'toepassen over de as' toepassen, wat handig is wanneer we de functie één voor één op elk element van de array toepassen, en het is handig voor de n-dimensionale arrays. De tweede methode is 'toepassen langs de as' die van toepassing is op een eendimensionale array.

Syntaxis:

Methode 1: langs de as aanbrengen

numpig. langs_as toepassen ( 1d_functie , as , arr , *args , **kwarks )

In de syntaxis hebben we de functie 'numpy.apply' waaraan we vijf argumenten doorgeven. Het eerste argument dat '1d_function' is, werkt op de eendimensionale array, die vereist is. Terwijl het tweede argument, de 'as', degene is op welke as u de array wilt segmenteren en die functie wilt toepassen. De derde parameter is 'arr', de gegeven array waarop we de functie willen toepassen. Terwijl de '*args' en '*kwargs' de extra argumenten zijn die niet hoeven te worden toegevoegd.







Voorbeeld 1:

Op weg naar een beter begrip van de 'apply'-methoden, voeren we een voorbeeld uit om de werking van de 'apply'-methoden te controleren. In dit geval voeren we de functie 'apply_along_Axis' uit. Laten we doorgaan naar onze eerste stap. We nemen eerst onze NumPy-bibliotheken op als np. En dan maken we een array met de naam 'arr' die een 3 × 3-matrix bevat met gehele waarden die '8, 1, 7, 4, 3, 9, 5, 2 en 6' zijn. In de volgende regel maken we een variabele met de naam 'array' die verantwoordelijk is voor het vasthouden van het resultaat van de functie apply_along_Axis.



Aan die functie geven we drie argumenten door. De eerste is de functie die we op de array willen toepassen, in ons geval is het de gesorteerde functie omdat we willen dat onze array wordt gesorteerd. Vervolgens geven we het tweede argument '1' door, wat betekent dat we onze array langs as = 1 willen snijden. Tenslotte geven we de array door die in dit geval gesorteerd moet worden. Aan het einde van de code drukken we eenvoudig beide arrays af - zowel de originele array als de resulterende array - die worden weergegeven met de print()-instructie.



importeren numpy net zo bijv.

arr = bijv. reeks ( [ [ 8 , 1 , 7 ] , [ 4 , 3 , 9 ] , [ 5 , twee , 6 ] ] )

reeks = bijv. langs_as toepassen ( gesorteerd , 1 , arr )

afdrukken ( 'de originele array is:' , arr )

afdrukken ( 'de gesorteerde array is:' , reeks )





Zoals we in de volgende uitvoer kunnen zien, hebben we beide arrays weergegeven. In de eerste worden de waarden willekeurig in elke rij van de matrix geplaatst. Maar in de tweede kunnen we de gesorteerde array zien. Sinds we de as '1' zijn gepasseerd, heeft deze niet de volledige array gesorteerd, maar rijsgewijs gesorteerd zoals weergegeven. Elke rij is gesorteerd. De eerste rij in de gegeven array is '8, 1 en 7'. In de gesorteerde array is de eerste rij '1, 7 en 8'. Hetzelfde als dit, elke rij is gesorteerd.



Methode 2: Toepassen over de as

numpig. apply_over_axes ( func , a , assen )

In de gegeven syntaxis hebben we de functie numpy.apply_over_axis die verantwoordelijk is voor het toepassen van de functie op de gegeven as. Binnen de functie Apply_over_axis geven we drie argumenten door. De eerste is de functie die moet worden uitgevoerd. De tweede is de array zelf. En de laatste is de as waarop we de functie willen toepassen.

Voorbeeld 2:

In het volgende geval voeren we de tweede methode van de functie 'toepassen' uit waarin we de som van de driedimensionale array berekenen. Een ding om te onthouden is dat de som van twee arrays niet betekent dat we de hele array berekenen. In sommige van de arrays berekenen we de rijgewijze som, wat betekent dat we de rijen optellen en het enkele element eruit halen.

Laten we verder gaan met onze code. We importeren eerst het NumPy-pakket en maken vervolgens een variabele die de driedimensionale array bevat. In ons geval is de variabele 'arr'. In de volgende regel maken we een andere variabele die de resulterende array van de functie Apply_over_axis bevat. We kennen de functie apply_over_Axis toe aan de variabele 'arr' met drie argumenten. Het eerste argument is de ingebouwde functie van NumPy om de som te berekenen die np.sum is. De tweede parameter is de array zelf. Het derde argument is de as waarop de functie wordt toegepast, in dit geval hebben we de as '[0, 2]'. Aan het einde van de code voeren we beide arrays uit met behulp van de print()-instructie.

importeren numpy net zo bijv.

arr = bijv. reeks ( [ [ [ 6 , 12 , twee ] , [ twee , 9 , 6 ] , [ 18 , 0 , 10 ] ] ,

[ [ 12 , 7 , 14 ] , [ twee , 17 , 18 ] , [ 0 , eenentwintig , 8 ] ] ] )

reeks = bijv. apply_over_axes ( bijv. som , arr , [ 0 , twee ] )

afdrukken ( 'de originele array is:' , arr )

afdrukken ( 'de som van de array is:' , reeks )

Zoals te zien is in de volgende afbeelding, hebben we enkele van onze driedimensionale arrays berekend met behulp van de functie Apply_over_axis. De eerste weergegeven array is de originele array met de vorm '2, 3, 3' en de tweede is de som van de rijen. De som op de eerste rij is '53', de tweede is '54' en de laatste is '57'.

Conclusie

In dit artikel hebben we onderzocht hoe de functie Apply in NumPy wordt gebruikt en hoe we de verschillende functies kunnen toepassen op arrays langs of over de as. Het is gemakkelijk om elke functie op de gewenste rij of kolom toe te passen door ze te slicen met behulp van de 'toepassen' -methoden van NumPy. Het is een efficiënte manier als we het niet op de hele array hoeven toe te passen. We hopen dat u dit bericht nuttig vindt om te leren hoe u de toepassingsmethode kunt gebruiken.