Compte Rendu TP4 Merghni Ghaith
Exercice 1 :
Code :
#EX1
import numpy as np
x = [Link](0, 2 * [Link], 50) #50 valeurs entre 0 et 2*pi
y = [Link](x) #applique sin a chaque ´el´ement
z = (y * 2) + 0.5 #transformation par broadcasting
print(f"Le dtype de z est : {[Link]}") #type des données
if [Link] == np.float32:
print("Il s'agit d'un flottant 32 bits.")
elif [Link] == np.float64:
print("Il s'agit d'un flottant 64 bits.")
else:
print(f"Il ne s'agit ni d'un flottant 32 bits ni d'un flottant 64 bits, mais de {[Link]}.")
Explication du code :
* linspace : génère un tableau régulier * sin : fonction vectorisée (pas de boucle)
* (y * 2) + 0.5 : opération appliquée `a tout le tableau
* dtype : affiche le type (souvent float64)
Exercice 2 :
Code :
#EX2
M=[Link](0,12,12).reshape(3,4) # matrice 3x4
V = M[0] # vue sur la premiére ligne
print(f"Vue V :\n{V}")
V[0]=99 # modifie M aussi
print(f"vue V aprés modification:\n{V}")
M_copy = [Link]() # copie indépendante
print(f"M_copy :\n{M_copy}")
M_copy[0] = 778 # ne modifie pas M
print(f"M_copy après modification :\n{M_copy}")
M_trans=M.T # transposée
print(f"M_trans :\n{M_trans}")
Explication du code :
* reshape : change la forme du tableau * M[0] : crée une vue (pas copie)
* flatten : crée une copie * T : transpose lignes/colonnes
1
Exercice 3 :
Code :
#EX3
x=[Link](1, 51, size=(5, 5)) # matrice aléatoire
print(f"x :\n{x}")
print("les nombres de x divisible par 3:")
print(x[x%3==0]) # valeurs divisibles par 3
sum_col=[Link](axis=0) # somme des colonnes
print("Colonnes dont la somme est supérieure à la moyenne globale :")
print(sum_col[sum_col>=[Link]()]) # colonnes filtrées
x[x>25]=0 # remplacement
print(f"x :\n{x}")
Explication du code :
* A * A[condition] : filtre les éléments * sum(axis=0) : somme par colonne
* mean : moyenne globale * A[A >25] = 0 : modification avec masque
Exercice 4 :
Code :
#EX4
A = [Link]([[1, 2], [3, 4]]) # matrice des coefficients
B = [Link]([5, 7]) # vecteur des constantes
det_A = [Link](A) # déterminant
print(f"\nDéterminant de A: {det_A}")
X = [Link](A, B) # solution du système
print(f"\nSolution X (x, y): {X}")
verification = A @ X
print(f"\nVérification (A @ X): {verification}") # vérification
print(f"Le résultat de la vérification est égal à B: {[Link](verification, B)}")
Explication du code :
* det : calcule le déterminant * solve : résout AX = B * @ : produit matriciel