NumPy rakenduse funktsioon

Numpy Rakenduse Funktsioon



Pythoni pakutav sisseehitatud teek, tuntud kui NumPy, võimaldab meil koostada mitmemõõtmelisi massiive, neid muuta ja teha nendega erinevaid aritmeetilisi arvutusi. Rakendusfunktsiooni pakub ka NumPy pakett. Rakendamise funktsiooni tüüpiline kasutusjuhtum on sarnane stsenaariumiga, kus soovime massiivi viiludeks lõigata ja loendi iga elemendiga teha teatud toiminguid, näiteks kui tahame rea iga üksuse ruudukujuliseks muuta. Muidugi teame Pythonis, et for-tsüklid on aeglased, nii et sooviksime neid võimaluse korral vältida. Funktsiooni 'Rakenda' saab kasutada, kui soovite teha sama toimingu andmeraami iga rea ​​või veeruga. Teisisõnu, see teeb seda, mida soovite for-tsükliga teha, ilma et peaksite for-tsüklit kirjutama.

Sõltuvalt tingimustest on massiivile mis tahes funktsiooni rakendamiseks kaks meetodit. Saame rakendada funktsiooni 'rakenda üle telje', mis on kasulik, kui rakendame funktsiooni igale massiivi elemendile ükshaaval, ja see on kasulik n-mõõtmeliste massiivide jaoks. Teine meetod on 'rakendamine piki telge', mis kehtib ühemõõtmelise massiivi puhul.

Süntaks:

1. meetod: kandke piki telge

tuim. rakenda_piki_telge ( 1d_funktsioon , telg , arr , *args , **kalad )

Süntaksis on funktsioon numpy.apply, millele edastame viis argumenti. Esimene argument, mis on '1d_function', töötab ühemõõtmelises massiivis, mis on nõutav. Kuigi teine ​​argument, 'telg', on see, mille teljele soovite massiivi tükeldada ja seda funktsiooni rakendada. Kolmas parameeter on “arr”, mis on antud massiiv, millele soovime funktsiooni rakendada. Kuigi '*args' ja '*kwargs' on täiendavad argumendid, mida pole vaja lisada.







Näide 1:

Rakendamise meetodite paremaks mõistmiseks esitame näite, et kontrollida rakendamismeetodite toimimist. Sel juhul täidame funktsiooni 'apply_along_Axis'. Jätkame oma esimese sammuga. Esmalt kaasame oma NumPy teegid np. Seejärel loome massiivi nimega 'arr', mis sisaldab 3 × 3 maatriksit täisarvuliste väärtustega, mis on '8, 1, 7, 4, 3, 9, 5, 2 ja 6'. Järgmisel real loome muutuja nimega 'massiivi', mis vastutab funktsiooni apply_along_Axis tulemuse hoidmise eest.



Sellele funktsioonile edastame kolm argumenti. Esimene on funktsioon, mida tahame massiivile rakendada, meie puhul on see sorteeritud funktsioon, kuna tahame, et meie massiiv oleks sorteeritud. Seejärel edastame teise argumendi '1', mis tähendab, et tahame oma massiivi viiludeks piki telge = 1. Lõpuks edastame sel juhul sortitava massiivi. Koodi lõpus prindime lihtsalt mõlemad massiivid – nii algse massiivi kui ka tulemuseks oleva massiivi –, mis kuvatakse print() lause abil.



importida tuim nagu nt.

arr = nt. massiivi ( [ [ 8 , 1 , 7 ] , [ 4 , 3 , 9 ] , [ 5 , kaks , 6 ] ] )

massiivi = nt. rakenda_piki_telge ( sorteeritud , 1 , arr )

printida ( 'algne massiiv on:' , arr )

printida ( 'sorteeritud massiiv on:' , massiivi )





Nagu näeme järgmises väljundis, kuvasime mõlemad massiivid. Esimeses on väärtused paigutatud juhuslikult igale maatriksi reale. Kuid teises näeme sorteeritud massiivi. Kuna möödusime teljest „1”, pole see kogu massiivi sorteerinud, vaid sorteeris selle rea kaupa, nagu kuvatakse. Iga rida on sorteeritud. Antud massiivi esimene rida on '8, 1 ja 7'. Sorditud massiivi esimene rida on '1, 7 ja 8'. Samamoodi nagu see, sorteeritakse iga rida.



2. meetod: kandke üle telje

tuim. rakenda_üle_telgede ( func , a , teljed )

Antud süntaksis on meil funktsioon numpy.apply_over_axis, mis vastutab funktsiooni rakendamise eest antud teljel. Funktsiooni apply_over_axis sees edastame kolm argumenti. Esimene on funktsioon, mida tuleb täita. Teine on massiiv ise. Ja viimane on telg, millele soovime funktsiooni rakendada.

Näide 2:

Järgmisel juhul teostame funktsiooni 'rakendamine' teise meetodi, mille käigus arvutame kolmemõõtmelise massiivi summa. Üks asi, mida meeles pidada, on see, et kahe massiivi summa ei tähenda, et arvutame kogu massiivi. Mõnes massiivis arvutame reapõhise summa, mis tähendab, et liidame read ja saame neist ühe elemendi.

Liigume edasi oma koodi juurde. Esmalt impordime paketi NumPy ja seejärel loome muutuja, mis hoiab kolmemõõtmelist massiivi. Meie puhul on muutujaks “arr”. Järgmisel real loome teise muutuja, mis sisaldab funktsiooni apply_over_axis saadud massiivi. Määrame kolme argumendiga muutujale “arr” funktsiooni apply_over_Axis. Esimene argument on NumPy sisseehitatud funktsioon summa arvutamiseks, mis on np.sum. Teine parameeter on massiiv ise. Kolmas argument on telg, mille üle funktsiooni rakendatakse, sel juhul on meil telg '[0, 2]'. Koodi lõpus käivitame mõlemad massiivid print() lause abil.

importida tuim nagu nt.

arr = nt. massiivi ( [ [ [ 6 , 12 , kaks ] , [ kaks , 9 , 6 ] , [ 18 , 0 , 10 ] ] ,

[ [ 12 , 7 , 14 ] , [ kaks , 17 , 18 ] , [ 0 , kakskümmend üks , 8 ] ] ] )

massiivi = nt. rakenda_üle_telgede ( nt. summa , arr , [ 0 , kaks ] )

printida ( 'algne massiiv on:' , arr )

printida ( 'massiivi summa on:' , massiivi )

Nagu on näidatud järgmisel joonisel, arvutasime mõned oma kolmemõõtmelised massiivid, kasutades funktsiooni apply_over_axis. Esimene kuvatav massiiv on algne massiiv kujuga '2, 3, 3' ja teine ​​​​on ridade summa. Esimese rea summa on '53', teine ​​on '54' ja viimane on '57'.

Järeldus

Selles artiklis uurisime, kuidas rakendusfunktsiooni NumPy kasutatakse ja kuidas erinevaid funktsioone rakendada massiividel piki või üle telje. Mis tahes funktsiooni on lihtne soovitud reale või veerule rakendada, lõigates need NumPy pakutavate rakendusmeetodite abil. See on tõhus viis, kui me ei pea seda kogu massiivile rakendama. Loodame, et see postitus on teile kasulik rakendusmeetodi kasutamise õppimisel.