NumPy ufuncs
Ce sunt ufuncs?
ufuncs inseamna "Universal Functions" si sunt functii care pot sa opereze pe siruri facute cu NumPy.
De ce sa folosim ufuncs?
ufuncs sunt folosite pentru a implementa vectorizarea in NumPy. Asta este mult mai rapide de cat iterarea fiecarui element. Acestea ofera si broadasting despre care am vorbit in cursul trecut dar si alte metode utile care sunt foarte bune pentru computatie.
ufunc accepta si argumente suplimentare, cum ar fi:
- where - o conditie care definieste unde ar trebui sa aiba loc operatia
- dtype - defineste tipul de date al valorilor returnate
- out - sir de iesire in care va fi copiat rezultatul
Ce este vectorizarea?
Transformarea operatiilor iterative intr-o operatie bazata pe vectori se numeste vectorizare. Este mai rapida pentru ca procesoarele moderne sunt optimizate pentru aceste calcule.
Adunarea elementelor a doua liste:
list1: [1,2,3,4]
list2: [4,5,6,7]
Fara ufuncs putem sa folosim metoda integrata in Python "zip()". Exemplu:
x=[1, 2, 3, 4]
y=[4, 5, 6, 7]
z=[]
for i, j in zip(x, y):
z.append(i+j)
print(z)
In consola o sa vedem:
[5, 7, 9, 11]
NumPy are o functie speciala numita add(x, y) care ne va da acelasi rezultat. Exemplu:
import numpy as np
x=[1, 2, 3, 4]
y=[4, 5, 6, 7]
z=np.add(x, y)
print(z)
In consola o sa vedem:
[ 5 7 9 11]
Acum haideti sa vedem cum putem sa facem o scadere dintre doua siruri cu ajutorul lui ufuncs. Functia care face scaderea este "subtract()". Haideti sa vedem printr-un exemplu cum functioneaza:
import numpy as np
x=np.array([23, 89, 100, 150, 900])
y=np.array([22, 45, 98, 109, 408])
z=np.subtract(x, y)
print(z)
In consola o sa vedem:
[ 1 44 2 41 492]
Haideti sa vedem cum sa facem o inmultire. Functia pentru inmultire este "multiply()". Haideti sa vedem cum functioneaza:
import numpy as np
x=np.array([1, 2, 3, 4, 5])
y=np.array([54, 99, 170, 250, 201])
z=np.multiply(x, y)
print(z)
In consola o sa vedem:
[ 54 198 510 1000 1005]
Haideti sa vedem cum facem impartirea acum. Aceasta se face cu ajutorul functiei "divide()". Exemplu:
import numpy as np
x=np.array([10, 20, 30, 40, 50, 60])
y=np.array([3, 5, 10, 8, 2, 33])
z=np.divide(x, y)
print(z)
In consola o sa vedem:
[ 3.33333333 4. 3. 5. 25. 1.81818182]
Haideti sa vedem cum ridicam la putere. Ridicarea la putere se face cu ajutorul functiei "power()". Exemplu:
import numpy as np
x=np.array([10, 20, 30, 40, 50, 60])
y=np.array([3, 5, 10, 8, 2, 33])
z=np.power(x, y)
print(z)
In consola o sa vedem:
[ 1000 3200000 30 2560000 2500 216000]
Cam acestea sunt operatiile care o sa ne ajute la dezvolatrea AI-ului.