NumPy Apply funkcija

Numpy Apply Funkcija



Integruota Python biblioteka, žinoma kaip NumPy, leidžia mums sudaryti daugiamačius masyvus, juos modifikuoti ir atlikti įvairius aritmetinius skaičiavimus. Taikyti funkciją taip pat teikia NumPy paketas. Įprastas taikymo funkcijos naudojimo atvejis yra panašus į scenarijų, kai norime suskaidyti masyvą ir atlikti tam tikras operacijas su kiekvienu sąrašo elementu, pavyzdžiui, jei norime sulyginti kiekvieną eilutės elementą kvadratu. Žinoma, Python programoje žinome, kad for-kilpos yra lėti, todėl, jei įmanoma, norėtume jų vengti. Funkciją „taikyti“ galima naudoti, jei norite atlikti tą pačią operaciją kiekvienoje duomenų rėmelio eilutėje ar stulpelyje. Kitaip tariant, jis daro tai, ką norite daryti su for-ciklu, nerašydamas for-ciklos.

Yra du būdai, kaip pritaikyti bet kurią funkciją masyvei, atsižvelgiant į sąlygas. Galime pritaikyti funkciją „taikyti virš ašies“, kuri yra naudinga, kai funkciją pritaikome kiekvienam masyvo elementui po vieną, ir ji yra naudinga n matmenų masyvams. Antrasis metodas yra „taikyti išilgai ašies“, kuris taikomas vienmačiai masyvai.

Sintaksė:

1 būdas: taikykite palei ašį

nelygus. taikyti_išilgai_ašies ( 1d_funkcija , ašį , arr , *args , **kvarkai )

Sintaksėje turime funkciją „numpy.apply“, kuriai perduodame penkis argumentus. Pirmasis argumentas, kuris yra „1d_function“, veikia vienmačiame masyve, kuris yra būtinas. Antrasis argumentas, „ašis“, yra tas, ant kurios ašies norite padalinti masyvą ir taikyti tą funkciją. Trečiasis parametras yra „arr“, kuris yra nurodytas masyvas, kuriam norime pritaikyti funkciją. Nors „*args“ ir „*kwargs“ yra papildomi argumentai, kurių nereikia pridėti.







1 pavyzdys:

Siekdami geriau suprasti „taikyti“ metodus, pateikiame pavyzdį, kad patikrintume taikomų metodų veikimą. Šiuo atveju atliekame funkciją „apply_along_Axis“. Pereikime prie pirmojo žingsnio. Pirmiausia įtraukiame savo NumPy bibliotekas kaip np. Tada sukuriame masyvą pavadinimu „arr“, kuriame yra 3 × 3 matrica su sveikųjų skaičių reikšmėmis, kurios yra „8, 1, 7, 4, 3, 9, 5, 2 ir 6“. Kitoje eilutėje sukuriame kintamąjį pavadinimu „masyvas“, kuris yra atsakingas už funkcijos apply_along_Axis rezultato laikymą.



Šiai funkcijai perduodame tris argumentus. Pirmoji yra funkcija, kurią norime pritaikyti masyvei, mūsų atveju tai yra rūšiavimo funkcija, nes norime, kad mūsų masyvas būtų surūšiuotas. Tada perduodame antrąjį argumentą „1“, o tai reiškia, kad norime padalinti masyvą išilgai ašies = 1. Galiausiai perduodame masyvą, kuris šiuo atveju turi būti rūšiuojamas. Kodo pabaigoje tiesiog išspausdiname abu masyvus – pradinį masyvą ir gautą masyvą – kurie rodomi naudojant teiginį print().



importuoti nelygus kaip pvz.

arr = pvz. masyvas ( [ [ 8 , 1 , 7 ] , [ 4 , 3 , 9 ] , [ 5 , du , 6 ] ] )

masyvas = pvz. taikyti_išilgai_ašies ( surūšiuoti , 1 , arr )

spausdinti ( 'pirminis masyvas yra:' , arr )

spausdinti ( 'surūšiuotas masyvas yra:' , masyvas )





Kaip matome toliau pateiktoje išvestyje, parodėme abu masyvus. Pirmajame, reikšmės atsitiktinai dedamos į kiekvieną matricos eilutę. Tačiau antrajame matome surūšiuotą masyvą. Kadangi praėjome ašį „1“, ji nesurūšiavo viso masyvo, bet surūšiavo jį pagal eilutes, kaip parodyta. Kiekviena eilutė yra rūšiuojama. Pirmoji nurodyto masyvo eilutė yra „8, 1 ir 7“. Surūšiuotame masyve pirmoji eilutė yra „1, 7 ir 8“. Taip pat kiekviena eilutė rūšiuojama.



2 būdas: užtepkite per ašį

nelygus. taikyti_virš_axes ( func , a , kirvius )

Pateiktoje sintaksėje turime funkciją numpy.apply_over_axis, kuri yra atsakinga už funkcijos taikymą nurodytai ašiai. Funkcijoje apply_over_axis perduodame tris argumentus. Pirmasis yra funkcija, kurią reikia atlikti. Antrasis yra pats masyvas. Ir paskutinis yra ašis, kurioje norime pritaikyti funkciją.

2 pavyzdys:

Tolesniu atveju atliekame antrąjį funkcijos „taikyti“ metodą, kuriame apskaičiuojame trimačio masyvo sumą. Vienas dalykas, kurį reikia atsiminti, yra tai, kad dviejų masyvų suma nereiškia, kad apskaičiuojame visą masyvą. Kai kuriuose masyvuose apskaičiuojame eilučių sumą, o tai reiškia, kad pridedame eilutes ir iš jų gauname vieną elementą.

Pereikime prie mūsų kodo. Pirmiausia importuojame „NumPy“ paketą ir tada sukuriame kintamąjį, kuriame yra trimatis masyvas. Mūsų atveju kintamasis yra „arr“. Kitoje eilutėje sukuriame kitą kintamąjį, kuriame yra gautas funkcijos apply_over_axis masyvas. Kintamajam 'arr' priskiriame funkciją apply_over_Axis su trimis argumentais. Pirmasis argumentas yra NumPy integruota funkcija, skirta apskaičiuoti sumą, kuri yra np.sum. Antrasis parametras yra pats masyvas. Trečiasis argumentas yra ašis, kuriai taikoma funkcija, šiuo atveju mes turime „[0, 2]“ ašį. Kodo pabaigoje abu masyvus vykdome naudodami print() sakinį.

importuoti nelygus kaip pvz.

arr = pvz. masyvas ( [ [ [ 6 , 12 , du ] , [ du , 9 , 6 ] , [ 18 , 0 , 10 ] ] ,

[ [ 12 , 7 , 14 ] , [ du , 17 , 18 ] , [ 0 , dvidešimt vienas , 8 ] ] ] )

masyvas = pvz. taikyti_virš_axes ( pvz. suma , arr , [ 0 , du ] )

spausdinti ( 'pirminis masyvas yra:' , arr )

spausdinti ( 'masyvo suma yra:' , masyvas )

Kaip parodyta toliau pateiktame paveikslėlyje, kai kuriuos trimačius masyvus apskaičiavome naudodami funkciją apply_over_axis. Pirmasis rodomas masyvas yra pradinis masyvas, kurio forma yra „2, 3, 3“, o antrasis yra eilučių suma. Pirmos eilutės suma yra „53“, antroji – „54“, o paskutinė – „57“.

Išvada

Šiame straipsnyje mes ištyrėme, kaip NumPy naudojama taikymo funkcija ir kaip galime pritaikyti įvairias funkcijas masyvuose išilgai ašies arba virš jos. Lengva pritaikyti bet kurią funkciją norimoje eilutėje ar stulpelyje, supjaustant jas naudojant „NumPy“ pateiktus „taikymo“ metodus. Tai efektyvus būdas, kai nereikia jo taikyti visam masyvui. Tikimės, kad šis įrašas bus naudingas mokantis naudoti taikymo metodą.