Mis on teekide NumPy ja Pandas kiiruse saladus?
Pythoni teegid NumPy ja Pandas on oluliselt kiiremad kui geneeriline Pythoni kood, sest nad on kirjutatud kompilaatorkeeles, peamiselt C++ aga osaliselt ka Cythonis ja Fortranis. See võimaldab neil teha arvutusi otse riistvaral, ilma Pythoni interpretaatori lisakoormuseta.
Mis muudab need teegid kiiremaks? Vektoreeritud operatsioonid: NumPy ja Pandas on optimeeritud suurte andmehulkade töötlemiseks tervikuna, mitte element haaval. Geneerilise Pythoni koodiga peab andmeid tavaliselt töötlema tsüklites (for-loop), mis on aeglasem ja vähem tõhus. Vektoreeritud operatsioonid võimaldavad teostada samu arvutusi kogu massiivil või seerial korraga, kasutades ära madala taseme keelte efektiivsust. Mälu haldamine: NumPy massiivid (ndarrays) hoiavad andmeid ühtses, kasutab järjestikust mäluplokki (ingl. contiguous memory), sarnaselt C massividele ja andmed on sama tüüpi (nt kõik täisarvud või ujukomaarvud). See teeb andmetele ligipääsu oluliselt kiiremaks ja vähendab mälukasutust. Pythoni listid seevastu on paindlikumad ja võivad sisaldada erinevat tüüpi andmeid, kuid see lisab mälukasutusele ja andmetele ligipääsule koormust. Välised teegid: Kuna NumPy ja Pandas on kirjutatud peamiselt C ja Cythoni abil, kasutavad nad ära nende keelte kiirust, mis on palju suurem kui Pythonil. See on ka põhjus, miks paljud teised andmeteaduse teegid on ehitatud just NumPy peale. Pandas on omakorda ehitatud NumPy peale.
Kui suur on kiiruse vahe? Kiiruse vahe on märkimisväärne, ulatudes kümnetest kuni tuhandete kordadeni, olenevalt ülesandest ja andmete suurusest. Lihtsad matemaatilised operatsioonid suurte andmehulkadega on NumPy ja Pandasega kordades kiiremad kui traditsiooniliste Pythoni tsüklitega. Kuigi konkreetne number varieerub, võib sageli näha, et NumPy ja Pandasega teostatud operatsioonid võtavad millisekundeid, samas kui sama tegevus Pythoni tsüklitega võtab sekundeid või isegi minuteid. Mida need teegid teevad? NumPy (Numerical Python) on teek, mis on spetsialiseerunud arvulistele operatsioonidele. Selle peamine andmestruktuur on mitmemõõtmeline massiiv ndarray. NumPy on andmeteaduses fundamentaalne teek, mida kasutatakse matemaatiliste operatsioonide, lineaarse algebra, Fourier' teisenduste ja juhuslike arvude genereerimise jaoks. Pandas on avatud lähtekoodiga teek, mis pakub andmete manipuleerimiseks ja analüüsiks paindlikke andmestruktuure. Pandas on ehitatud NumPy peale ja selle kaks peamist andmestruktuuri on: Series: Ühemõõtmeline massiiv andmete hoidmiseks. DataFrame: Kahemõõtmeline tabel andmete hoidmiseks, mis sarnaneb andmebaasi tabeli või Exceli töölehega. Pandas on ideaalne andmete puhastamiseks, teisendamiseks ja analüüsimiseks. Samuti pakub see hulgaliselt funktsioone puuduvate andmete käsitlemiseks ja andmete visualiseerimiseks.
|
| |
Monteeri lihtsalt ja kiiresti
Riistvara montaa¾ on jaotatud etappideks ja toetatud õppevideodega. Vaata lähemalt.
Tarkvaratugi
Loe riistvaralist portide lugemist ja muutujate defineerimist toetava tarkvarateegi kohta