Home » Articole » Articole » Calculatoare » Programare » Python » Python: Operatori aritmetici „vectorizați”

Python: Operatori aritmetici „vectorizați”

postat în: Python 0

Amintiți-vă tabelul nostru de operatori matematici Python (Figura 5.1).

Operator Operația
+ adunare
– scădere
* înmulțire
/ împărțire
** exponențiere (“ridicare la puterea a”)
() grupare

Figura 5.1: Operatorii matematici de bază din Python.

PythonCe fac acele lucruri dacă le folosim în mod agregat, în loc de date atomice? Răspunsul este: ceva super cool și util.

Operarea pe o matrice și o singură valoare

Luați în considerare următorul cod: 30

num_likes_today = np.array([6,61,0,0,14])
num_likes_tomorrow = num_likes_today + 3
print(num_likes_tomorrow)

 

▌ [ 9 64 3 3 17 ]

Vezi ce sa întâmplat? „Adăugarea lui 3” la matrice înseamnă adăugarea lui 3 la fiecare element. Toate într-o singură linie compactă de cod, putem face cinci – sau chiar cinci miliarde – de operațiuni. Acest lucru funcționează și pentru toți ceilalți operatori din Figura 5.1.

Din motive oarecum ciudate, acest tip de lucru se numește operație vectorizată. Tot ce trebuie să știi este că asta înseamnă rapid. Și este „rapid” în două moduri diferite: rapid pentru a scrie codul (deoarece în loc să folosiți o buclă, pe care o vom acoperi în capitolul 14, trebuie doar să scrieți o singură declarație cu semnele + și =) și, mai important, rapid în executare. Din motive și mai ciudate, codul de mai sus va rula rapid chiar dacă num_likes_today a avut cinci sute de milioane de elemente în loc de doar cinci. După cum veți afla dacă o să încercați vreodată, o buclă Python este mult mai lentă. (2)

Nu mă înțelegeți greșit: există momente în care va trebui să folosim o buclă pentru că nu avem de ales. Dar regula generală cu Python este: dacă vă puteți da seama cum să efectuați un calcul fără a utiliza o buclă, faceți-o întotdeauna!

Operarea pe două matrice

Posibil și mai cool, putem chiar folosi „+” (sau „-”, sau „*”, sau…) pe două matrice întregi împreună. Exemplu:

salaries = np.array([38000, 102000, 55750, 29500, 250000])
raises = np.array([1000, 4000, 2000, 1000, 2000])
salaries = salaries + raises
print(salaries)

Acest cod produce:

▌ [ 39000 106000 57750 30500 252000]

Puteți vedea de ce? „Adăugarea” celor două matrici împreună a efectuat adăugarea element cu element. Rezultatul este o nouă matrice cu 38000 + 1000 ca prim element, 102000 + 4000 ca al doilea element, etc. Și aceasta este o operație vectorizată fulgerătoare și funcționează și cu toți ceilalți operatori matematici.

Doar pentru a sublinia din nou un punct înainte de a continua. În exemplul anterior, am atribuit rezultatul operației unei variabile noi, num_likes_tomorrow. Aceasta înseamnă că num_likes_today în sine a fost neschimbat de cod. În schimb, în ​​exemplul pe care tocmai l-am făcut, am atribuit rezultatul operației înapoi într-o variabilă existentă (salaries). Deci salaries au fost actualizate ca urmare a acestui cod.

(2) Tocmai am făcut comparația pe laptopul meu și iată rezultatele. Folosind operatorul vectorizat simplu „+”, mașina mea a adăugat numărul 3 la o matrice cu cinci sute de milioane de elemente în doar 1,51 secunde. O buclă, în schimb, a durat 2,8 minute pentru a face același lucru.

Sursa: Stephen Davies, The Crystal Ball – Instruction Manual, Vol. 1: Introduction to Data Science, v. 1.1. Copyright © 2021 Stephen Davies. Licența CC BY-SA 4.0. Traducere și adaptare: Nicolae Sfetcu. © 2024 MultiMedia Publishing, Introducere în Știința Datelor, Volumul 1

Etica Big Data în cercetare
Etica Big Data în cercetare

O explorare critică a provocărilor etice și a implicațiilor legale asociate Big Data.

Nu a fost votat Interval de prețuri: 0.00 lei până la 10.80 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Introducere în inteligența artificială
Introducere în inteligența artificială

Pășește în era digitală pregătit să înțelegi și să aplici conceptele care schimbă lumea!

Nu a fost votat Interval de prețuri: 13.74 lei până la 27.15 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Lucrul cu baze de date
Lucrul cu baze de date

Descoperă puterea bazelor de date cu acest ghid complet.

Nu a fost votat Interval de prețuri: 18.33 lei până la 36.71 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.


Descoperă mai multe la MultiMedia

Abonează-te ca să primești ultimele articole prin email.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *