NumPy Apply funkcija

Numpy Apply Funkcija



Python piedāvātā iebūvētā bibliotēka, kas pazīstama kā NumPy, ļauj mums izveidot daudzdimensiju masīvus, modificēt tos un veikt dažādus aritmētiskos aprēķinus. Lietotnes funkciju nodrošina arī NumPy pakotne. Tipisks pielietošanas funkcijas lietošanas gadījums ir līdzīgs scenārijam, kurā mēs vēlamies sadalīt masīvu un veikt dažas darbības ar katru saraksta elementu, piemēram, ja mēs vēlamies katru rindas vienumu izlīdzināt kvadrātā. Protams, programmā Python mēs zinām, ka for-cilpas ir lēnas, tāpēc, ja iespējams, vēlamies no tām izvairīties. Funkciju “piemērot” var izmantot, ja vēlaties veikt to pašu darbību katrā datu rāmja rindā vai kolonnā. Citiem vārdiem sakot, tas dara to, ko vēlaties darīt ar for-cilpu, nerakstot for-cilpu.

Ir divas metodes, kā lietot jebkuru funkciju masīvam atkarībā no stāvokļa. Mēs varam izmantot funkciju “piemērot pāri asi”, kas ir noderīga, ja funkciju lietojam katram masīva elementam pa vienam, un tā ir noderīga n-dimensiju masīviem. Otrā metode ir “piemērot pa asi”, kas attiecas uz viendimensijas masīvu.

Sintakse:

1. metode: uzklājiet gar asi

nejutīgs. pielietot_gar_asi ( 1d_funkcija , ass , arr , *args , **kvāri )

Sintaksē mums ir funkcija “numpy.apply”, kurai mēs nododam piecus argumentus. Pirmais arguments, kas ir “1d_function”, darbojas uz viendimensijas masīvu, kas ir nepieciešams. Savukārt otrais arguments, “ass”, ir tas, uz kuras ass vēlaties sadalīt masīvu un lietot šo funkciju. Trešais parametrs ir “arr”, kas ir dotais masīvs, kuram vēlamies lietot funkciju. Lai gan “*args” un “*kwargs” ir papildu argumenti, kas nav jāpievieno.







1. piemērs:

Virzoties uz labāku izpratni par “pielietošanas” metodēm, mēs veicam piemēru, lai pārbaudītu pielietošanas metožu darbību. Šajā gadījumā mēs veicam funkciju “apply_along_Axis”. Pārejam pie sava pirmā soļa. Vispirms mēs iekļaujam savas NumPy bibliotēkas kā np. Un tad mēs izveidojam masīvu ar nosaukumu “arr”, kurā ir 3 × 3 matrica ar veselām vērtībām, kas ir “8, 1, 7, 4, 3, 9, 5, 2 un 6”. Nākamajā rindā mēs izveidojam mainīgo ar nosaukumu “masīvs”, kas ir atbildīgs par funkcijas apply_along_Axis rezultāta turēšanu.



Šai funkcijai mēs nododam trīs argumentus. Pirmā ir funkcija, kuru mēs vēlamies lietot masīvam, mūsu gadījumā tā ir kārtotā funkcija, jo mēs vēlamies, lai mūsu masīvs tiktu sakārtots. Pēc tam mēs nododam otro argumentu “1”, kas nozīmē, ka mēs vēlamies sadalīt masīvu pa asi = 1. Visbeidzot, mēs nododam masīvu, kas šajā gadījumā ir jāsakārto. Koda beigās mēs vienkārši izdrukājam abus masīvus - sākotnējo masīvu, kā arī iegūto masīvu -, kas tiek parādīti, izmantojot priekšrakstu print ().



imports nejutīgs piem.

arr = piem. masīvs ( [ [ 8 , 1 , 7 ] , [ 4 , 3 , 9 ] , [ 5 , divi , 6 ] ] )

masīvs = piem. pielietot_gar_asi ( sakārtoti , 1 , arr )

drukāt ( 'sākotnējais masīvs ir:' , arr )

drukāt ( 'kārtotais masīvs ir:' , masīvs )





Kā redzams nākamajā izvadē, mēs parādījām abus masīvus. Pirmajā vērtības tiek nejauši novietotas katrā matricas rindā. Bet otrajā mēs varam redzēt sakārtoto masīvu. Tā kā mēs pabraucām garām asij “1”, tas nav sakārtojis visu masīvu, bet sakārtojis to pa rindām, kā parādīts. Katra rinda ir sakārtota. Pirmā rinda dotajā masīvā ir “8, 1 un 7”. Atrodoties sakārtotajā masīvā, pirmā rinda ir “1, 7 un 8”. Katra rinda tiek kārtota tāpat kā šī.



2. metode: uzklājiet virs ass

nejutīgs. lietot_virs_asiem ( func , a , cirvji )

Dotajā sintaksē mums ir funkcija numpy.apply_over_axis, kas ir atbildīga par funkcijas lietošanu uz dotās ass. Funkcijā apply_over_axis mēs nododam trīs argumentus. Pirmā ir funkcija, kas jāveic. Otrais ir pats masīvs. Un pēdējā ir ass, uz kuras mēs vēlamies lietot funkciju.

2. piemērs:

Nākamajā gadījumā mēs veicam funkcijas “piemērot” otro metodi, kurā mēs aprēķinām trīsdimensiju masīva summu. Viena lieta, kas jāatceras, ir tāda, ka divu masīvu summa nenozīmē, ka mēs aprēķinām visu masīvu. Dažos masīvos mēs aprēķinām rindu summu, kas nozīmē, ka mēs pievienojam rindas un iegūstam no tām vienu elementu.

Pārejam uz mūsu kodu. Vispirms mēs importējam NumPy pakotni un pēc tam izveidojam mainīgo, kas satur trīsdimensiju masīvu. Mūsu gadījumā mainīgais ir “arr”. Nākamajā rindā mēs izveidojam citu mainīgo, kas satur funkcijas apply_over_axis iegūto masīvu. Mēs piešķiram funkciju apply_over_Axis mainīgajam “arr” ar trim argumentiem. Pirmais arguments ir NumPy iebūvētā funkcija, lai aprēķinātu summu, kas ir np.sum. Otrais parametrs ir pats masīvs. Trešais arguments ir ass, virs kuras tiek lietota funkcija, šajā gadījumā mums ir “[0, 2]” ass. Koda beigās mēs izpildām abus masīvus, izmantojot priekšrakstu print().

imports nejutīgs piem.

arr = piem. masīvs ( [ [ [ 6 , 12 , divi ] , [ divi , 9 , 6 ] , [ 18 , 0 , 10 ] ] ,

[ [ 12 , 7 , 14 ] , [ divi , 17 , 18 ] , [ 0 , divdesmitviens , 8 ] ] ] )

masīvs = piem. lietot_virs_asiem ( piem. summa , arr , [ 0 , divi ] )

drukāt ( 'sākotnējais masīvs ir:' , arr )

drukāt ( 'masīva summa ir:' , masīvs )

Kā parādīts nākamajā attēlā, mēs aprēķinājām dažus trīsdimensiju masīvus, izmantojot funkciju apply_over_axis. Pirmais parādītais masīvs ir sākotnējais masīvs ar formu “2, 3, 3”, bet otrais ir rindu summa. Pirmās rindas summa ir “53”, otrā ir “54” un pēdējā ir “57”.

Secinājums

Šajā rakstā mēs pētījām, kā lietotnē NumPy tiek izmantota pielietošanas funkcija un kā mēs varam lietot dažādas funkcijas masīviem gar asi vai virs tās. Ir viegli piemērot jebkuru funkciju vēlamajā rindā vai kolonnā, sagriežot tās, izmantojot NumPy nodrošinātās “piemērošanas” metodes. Tas ir efektīvs veids, ja mums tas nav jāpiemēro visam masīvam. Mēs ceram, ka šī ziņa jums noderēs, lai uzzinātu, kā izmantot pieteikšanās metodi.