258 lines
3.9 KiB
Python
258 lines
3.9 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
Created on Wed Mar 18 14:16:17 2026
|
|
|
|
@author: alex
|
|
"""
|
|
import numpy as np
|
|
|
|
#ndarray
|
|
|
|
def delimit(i):
|
|
print(" ")
|
|
print(f"-({i})-" + 48*"-")
|
|
|
|
delimit(0)
|
|
|
|
|
|
x = [1, 2, 3, 4]
|
|
|
|
# fara numpy
|
|
rez = []
|
|
for t in x:
|
|
rez.append(t*t + 1)
|
|
print(rez)
|
|
|
|
# cu numpy
|
|
x = np.array([1, 2, 3, 4])
|
|
rez = x * x + 1
|
|
print(rez)
|
|
|
|
delimit(1)
|
|
|
|
|
|
a = np.array([1, 2, 3])
|
|
b = np.zeros(4) # 4 zerouri
|
|
|
|
print(np.mean(a))
|
|
|
|
a = np.array([1, 2, 3, 4])
|
|
print(a)
|
|
print(type(a)) #ndarray
|
|
|
|
delimit(2)
|
|
|
|
|
|
A = np.array([[1,2,3],
|
|
[4,5,6]])
|
|
print(A)
|
|
print(A.shape)
|
|
print(A.ndim)
|
|
|
|
delimit(3)
|
|
|
|
|
|
L1 = [1,2,3]
|
|
L2 = [4,5,6]
|
|
print(L1+L2) #concatenare
|
|
|
|
a = np.array([1, 2, 3])
|
|
b = np.array([4, 5, 6])
|
|
print(a+b) #adunare vectoriala
|
|
|
|
print(L1*2) #dublare lista
|
|
print(a*2) #inmultire cu scalar
|
|
|
|
delimit(4)
|
|
|
|
|
|
a = np.array([1, 2, 3])
|
|
b = a * a + 1
|
|
print(a)
|
|
print(b)
|
|
|
|
delimit(5)
|
|
|
|
|
|
a = np.array([[1, 2, 3]]) #matrice de o linie si 3 coloane
|
|
print(a.shape) #(linii, coloane)
|
|
a = np.array([1,2,3]) # matrice de 3 linii si '0' coloane
|
|
# a doua forma e transpusa primei si viceversa
|
|
print(a.shape)
|
|
|
|
b = a + a + 1 # exhivalent cu b = 2*a + 1
|
|
|
|
print(a)
|
|
print(b)
|
|
print(b-a)
|
|
|
|
delimit(6)
|
|
|
|
|
|
c = np.array([[1,2,3],
|
|
[4,5,6]])
|
|
|
|
print(c)
|
|
print(c.shape)
|
|
|
|
delimit(7)
|
|
|
|
|
|
lista = [1,2,3]
|
|
#print(lista + 1 ) # EROARE
|
|
lista2 = [1]
|
|
print(lista + lista2) #corect
|
|
print(lista + [6]) # corect
|
|
|
|
delimit(8)
|
|
|
|
|
|
x = [0,1,2,3]
|
|
y = []
|
|
for t in x:
|
|
y.append(t**2 + 1)
|
|
print(y) #explicit
|
|
|
|
y = [t**2 + 1 for t in x]
|
|
print(y) #list comprehensions
|
|
|
|
x = np.array([0,1,2,3])
|
|
y = x**2 + 1 #array in numpy
|
|
print(y)
|
|
|
|
# echivalente ^
|
|
|
|
delimit(9)
|
|
|
|
|
|
a = np.array([10,20,30,40])
|
|
print(a)
|
|
print(a.shape) # 4 linii 1 col (4,)
|
|
print(a.size) # numarul de elemente
|
|
print(a.dtype) # tipul elementelor i.e. int64
|
|
print(a.ndim) # numarul de dimensiuni ale array-ului
|
|
|
|
delimit(10)
|
|
|
|
|
|
c = np.array([[1,2,3],
|
|
[4,5,6]])
|
|
|
|
print(c)
|
|
print(c.shape)
|
|
print(c.size)
|
|
print(c.dtype)
|
|
print(c.ndim)
|
|
|
|
delimit(11)
|
|
|
|
|
|
#tip date int si float
|
|
a = np.array([1, 2, 3])
|
|
b = np.array([1., 2., 3.])
|
|
b_1 = np.array([1., 2, 3.])
|
|
|
|
print(a.dtype)
|
|
print(b.dtype)
|
|
print(b_1.dtype)
|
|
|
|
delimit(12)
|
|
|
|
|
|
a = np.zeros(5) # 5 zerouri
|
|
b = np.ones(4) # 4 de 1
|
|
c = np.arange(0, 10, 2) # A RANGE de la 0 la 10 din 2 in 2 (pas);
|
|
# 10 nu e luat in calcul
|
|
d = np.linspace(0, 1, 5) # multime de la 0 la 1 cu 5 elemente echidistante
|
|
# se foloseste pentru a crea domeniul unei functii pe interval
|
|
print(a)
|
|
print(b)
|
|
print(c)
|
|
print(d)
|
|
|
|
delimit(13)
|
|
|
|
|
|
# operatii vectorizate
|
|
|
|
a = np.array([1,2,3])
|
|
print(a + 1)
|
|
print(a - 1)
|
|
print(a / 2)
|
|
print(a // 2)
|
|
print(2 * a)
|
|
|
|
b = np.array([4,5,6])
|
|
|
|
print(a + b)
|
|
print(b - a)
|
|
print(b / a)
|
|
print(a * b)
|
|
|
|
c = np.array([1,2,3])
|
|
d = np.array([10,20])
|
|
#print(c+d) # EROARE, array-urile trebuies sa fie de marime egala
|
|
|
|
delimit(14)
|
|
|
|
|
|
a = np.array([0, np.pi/6, np.pi/4, np.pi/3, np.pi/2])
|
|
print(np.sin(a))
|
|
print(np.cos(a))
|
|
#face aproximari a lui pi si deci cos(pi/2) nu e exact 0
|
|
|
|
delimit(15)
|
|
|
|
|
|
y = np.array([1,1,4,9,16,16])
|
|
print(np.sqrt(y))
|
|
|
|
print(np.min(y))
|
|
print(np.max(y))
|
|
print(np.argmin(y)) # prima pozitie la care apare min
|
|
print(np.argmax(y)) # prima pozitie la care apare max
|
|
# indexate de la 0
|
|
print(np.where(y == np.min(y)))
|
|
#gaseste toate pozitiile la care se gaseste elementul care
|
|
#satisface conditia ex. min
|
|
print(np.sum(y)) # suma
|
|
print(np.mean(y)) # media
|
|
print(np.std(y)) # eroarea medie statistica
|
|
|
|
n = np.array([-1,-1,-4,-9,-16,-16,1,1,4,9,16,16])
|
|
print(np.abs(n)) # modul
|
|
|
|
a = np.array([4,7,2,9,10])
|
|
print(np.sort(a))
|
|
print(a) # nu modifica pe loc variabila
|
|
|
|
delimit(16)
|
|
|
|
|
|
L = [1, 2, 3, 4]
|
|
a = np.array(L)
|
|
|
|
print(L)
|
|
print(a)
|
|
print(type(L))
|
|
print(type(a))
|
|
L_1 = a.tolist()
|
|
print(L_1)
|
|
print(type(L_1))
|
|
|
|
delimit(17)
|
|
|
|
|
|
# Exemplu de program numpy.array vs list + for
|
|
|
|
temperaturi = [10,15,30,40]
|
|
temperaturi_f = []
|
|
for temp in temperaturi:
|
|
temperaturi_f += [(temp * (9/5) + 32)]
|
|
print(temperaturi_f)
|
|
|
|
temperaturi = np.array([10,15,30,40])
|
|
temperaturi_f = temperaturi * (9/5) + 32
|
|
print(temperaturi_f)
|