Numby, partea 2 operațiuni de bază pe arrays, python 3 pentru începători și manechine

Bine ai venit! Continuam sa lucrez la manualul pe biblioteca python NumPy.

În ultima parte, am învățat cum să creați tablouri și să le imprimați. Cu toate acestea, acest lucru nu are sens, dacă nu se poate face nimic cu ei.

Astăzi vom fi familiarizați cu operațiunile pe mese.

Operațiuni de bază

Operațiile matematice pe magistrale sunt realizate în mod elementar. Se creează o nouă matrice, care este umplută cu rezultatele acțiunii operatorului.

Pentru aceasta, firește, matricele trebuie să aibă aceeași dimensiune.

De asemenea, puteți efectua operații matematice între un tablou și un număr. În acest caz, fiecare număr este adăugat (sau orice faceți) la acest număr.

NumPy oferă, de asemenea, multe operații matematice pentru procesarea matricelor:

Lista completă poate fi găsită aici.

Multe operații unare, cum ar fi, de exemplu, calcularea sumei tuturor elementelor unei matrice, sunt, de asemenea, reprezentate ca metode ale clasei ndarray.

Implicit, aceste operațiuni se aplică matricei, ca și cum ar fi o listă de numere, indiferent de forma acesteia. Cu toate acestea, prin specificarea parametrului axei, puteți aplica o operație la axa specificată a matricei:

Indici, felii, iterații

Modulele unidimensionale execută operațiuni de indexare, slice și iterare într-un mod foarte asemănător cu liste regulate și alte secvențe Python (cu excepția cazului în care nu le puteți șterge cu felii).

Cadrele multidimensionale au un indice per axă. Indicii sunt transmiși sub forma unei secvențe de numere separate prin virgule (adică prin tupluri):

Atunci când indicii sunt mai mici decât axele, se presupune că indicii lipsă vor fi suplimentați cu felii:

De exemplu, dacă x are rangul 5 (adică are 5 axe), atunci

  • x [1, 2] este echivalent cu x [1, 2],
  • x [. 3] este identic cu x [. 3] și
  • x [4. 5.] acesta este x [4. 5.].

Iterația reelelor multidimensionale începe cu prima axă:

Cu toate acestea, dacă aveți nevoie să treceți prin întreg element prin element, ca și cum ar fi unul dimensional, puteți folosi atributul plat:

Manipularea formularului

Așa cum am menționat deja, matricea are o formă definită de numărul de elemente de-a lungul fiecărei axe:

Forma matricei poate fi schimbată utilizând diferite comenzi:

Ordinea elementelor din matrice ca urmare a funcției ravel () corespunde stilului obișnuit "C", adică cu cât indicatorul este mai aproape spre dreapta, cu cât "se schimbă mai repede": după elementul a [0,0] urmează un [0,1]. Dacă o formă a matricei a fost schimbată în alta, matricea este re-formată și în stilul "C". Funcțiile ravel () și remake () pot funcționa (folosind un argument opțional) în stilul FORTRAN, în care indexul mai stâng se schimbă mai repede.

Metoda reshape () returnează argumentul cu forma modificată, în timp ce metoda redimensionării () modifică matricea însăși:

Dacă unul dintre argumente este specificat ca -1 în timpul funcționării unei astfel de reconstrucții, atunci se calculează în mod automat în conformitate cu restul:

Combinarea matricelor

Seturile multiple pot fi combinate de-a lungul axelor diferite folosind funcțiile hstack și vstack.

hstack () combină matricele de-a lungul primelor axe, vstack () - de ultimul:

Funcția column_stack () combină matricele unidimensionale ca coloane ale unei matrice bidimensionale:

În mod similar, pentru rânduri, există o funcție numită row_stack ().

Separarea unui matrice

Folosind hsplit (), puteți împărți matricele de-a lungul axei orizontale, specificând fie numărul de tablouri returnate de aceeași formă, fie numărul de coloane după care matricea este tăiată cu "foarfece":

Funcția vsplit () împarte matricea de-a lungul axei verticale, iar array_split () vă permite să specificați axele de-a lungul cărora va avea loc partiția.

Copii și reprezentări

Când lucrați cu matrice, datele acestora trebuie uneori să fie copiate într-o altă matrice și uneori nu. Aceasta este adesea o sursă de confuzie. Există probabil 3 cazuri:

Nu există copii

Cesiunea simplă nu creează o copie a matricei și nici o copie a datelor sale:

Python transmite obiecte modificate ca referințe, astfel încât apelurile pentru funcții nu creează și copii.

Vizualizați sau copiați suprafața

Diferite obiecte de matrice pot folosi aceleași date. Metoda de vizualizare () creează un nou obiect de array care reprezintă o reprezentare a acelorași date.

O reducere a unei matrice este o reprezentare:

Copie profundă

Articole similare