Numpy, 2. rész alapműveletek a tömbökön, python 3 kezdőknek és begépelésnek
Üdvözlünk! Továbbra is dolgozom a Python-könyvtár NumPy kézikönyvében.
Az utolsó részben megtudtuk, hogyan lehet létrehozni tömböket és kinyomtatni őket. Ennek azonban nincs értelme, ha semmit sem lehet tenni velük.
Ma megismerjük a tömbök működését.
Alapműveletek
A tömbökre vonatkozó matematikai műveletek elemek szerint kerülnek végrehajtásra. Új tömb jön létre, amely tele van az operátor művelet eredményével.
Ehhez természetesen a tömböknek azonos méretűnek kell lenniük.
Matematikai műveletek elvégezhetők egy tömb és egy szám között is. Ebben az esetben minden szám hozzáadásra kerül (vagy bármit is csinál) ezzel a számmal.
NumPy sok matematikai műveletet is biztosít a tömbök feldolgozásához:
A teljes lista megtalálható itt.
Számos unary művelet, mint például a tömb minden elemének összegének kiszámítása, szintén a megosztási osztály módszereinek tekinthető.
Alapértelmezés szerint ezek a műveletek a tömbre vonatkoznak, mintha számok listája lenne, függetlenül annak alakjától. Azonban a tengelyparaméter megadásával egy műveletet alkalmazhat a tömb meghatározott tengelyére:
Indexek, szeletek, iterációk
Az egydimenziós tömbök indexelést, szeletelést és iterációs műveleteket végeznek, hasonlóan a rendszeres listákhoz és más Python szekvenciákhoz (hacsak nem törölheti őket szeletekkel).
A többdimenziós tömbök tengelyenként egy indexet tartalmaznak. Az indexeket vesszõvel elválasztott számsorok formájában (azaz vesszõkkel) továbbítják:
Ha az indexek kisebbek a tengelyeknél, a hiányzó mutatókat szeletekkel kell kiegészíteni:
Például, ha az x értéke 5-ös (vagyis 5 tengelye van), akkor
- x [1, 2] egyenérték x [1, 2],
- x [. 3] megegyezik az x [. 3] és
- x [4. 5.] ez x [4. 5.].
A többdimenziós tömbök ionizálása az első tengelyen kezdődik:
Ha azonban az egész elemet elemenként kell átvinni, mintha csak egydimenziós lenne, akkor használhatja a lapos attribútumot:
Az űrlap manipulálása
Amint már említettük, a tömbnek az egyes tengelyek mentén található elemek számával meghatározott alakja van:
A tömb alakja megváltoztatható különböző parancsokkal:
A tömb elemeinek sorrendje a ravel () függvény következtében a szokásos "C-stílushoz" illeszkedik, vagyis a jobbra az index, a "gyorsabban változik": az a elem után [0,0] következik [0,1]. Ha a tömb egyik formáját másikra cseréltük, akkor a tömböket szintén "C-stílusban" alakítjuk ki. A ravel () és a reshape () függvények szintén működhetnek (opcionális argumentum használatával) a FORTRAN stílusban, ahol a baloldali index gyorsabban változik.
A reshape () metódus megváltoztatott formában visszaküldi az argumentumát, míg a resize () metódus maga módosítja a tömböt:
Ha az argumentumok egyikét -1-ben adjuk meg egy ilyen újjáépítés során, akkor automatikusan kiszámítjuk a fennmaradó értékek szerint:
Kombinálva a rétegeket
A többszörös tömbök különböző tengelyek mentén kombinálhatók a hstack és a stack funkciók segítségével.
hstack () ötvözi az első tengely mentén lévő tömböket, vstack () - az utolsó:
A column_stack () függvény az egydimenziós tömböket kétdimenziós tömb oszlopaként egyesíti:
Hasonlóképpen, a soroknál létezik egy függvény row_stack ().
Partíció felosztása
A hsplit () segítségével a tömböt vízszintes tengely mentén oszthatja meg, megadva az azonos alakú visszatért tömbök számát vagy az oszlopok számát, amelyek után a tömb "ollóval" vágódik:
Az vsplit () függvény a függőleges tengely mentén osztja a tömböt, és az array_split () lehetővé teszi a tengelyek azonosítását, amelyek mentén a partíció megtörténik.
Másolatok és ábrázolások
Amikor tömbökkel dolgozik, néha át kell másolnia adataikat egy másik tömbre, és néha nem. Ez gyakran összetéveszthető. Valószínűleg 3 eset van:
Egyetlen példány sem
Az egyszerű hozzárendelés nem hoz létre a tömb másolatát, sem az adatok másolatát:
A Python a módosított objektumokat referenciaként adja át, így a függvényhívások nem készítenek másolatokat.
Nézet vagy felületi másolat
A különböző tömb objektumok ugyanazokat az adatokat használhatják. A view () metódus új tömb objektumot hoz létre, amely ugyanazokból az adatokból áll.
Egy tömb kivágása egy reprezentáció: