diff --git a/Maths/tp/tp2/exercice2.py b/Maths/tp/Base1/tp2/exercice2.py similarity index 100% rename from Maths/tp/tp2/exercice2.py rename to Maths/tp/Base1/tp2/exercice2.py diff --git a/Maths/tp/tp2/exercice3.py b/Maths/tp/Base1/tp2/exercice3.py similarity index 100% rename from Maths/tp/tp2/exercice3.py rename to Maths/tp/Base1/tp2/exercice3.py diff --git a/Maths/tp/tp2/f_exemple.cnf b/Maths/tp/Base1/tp2/f_exemple.cnf similarity index 100% rename from Maths/tp/tp2/f_exemple.cnf rename to Maths/tp/Base1/tp2/f_exemple.cnf diff --git a/Maths/tp/tp2/lectureDIMACS.py b/Maths/tp/Base1/tp2/lectureDIMACS.py similarity index 100% rename from Maths/tp/tp2/lectureDIMACS.py rename to Maths/tp/Base1/tp2/lectureDIMACS.py diff --git a/Maths/tp/tp2/table_verite.py b/Maths/tp/Base1/tp2/table_verite.py similarity index 100% rename from Maths/tp/tp2/table_verite.py rename to Maths/tp/Base1/tp2/table_verite.py diff --git a/Maths/tp/tp2/toy.cnf b/Maths/tp/Base1/tp2/toy.cnf similarity index 100% rename from Maths/tp/tp2/toy.cnf rename to Maths/tp/Base1/tp2/toy.cnf diff --git a/Maths/tp/tp3/TP3_reines.pdf b/Maths/tp/Base1/tp3/TP3_reines.pdf similarity index 100% rename from Maths/tp/tp3/TP3_reines.pdf rename to Maths/tp/Base1/tp3/TP3_reines.pdf diff --git a/Maths/tp/tp3/reines.cnf b/Maths/tp/Base1/tp3/reines.cnf similarity index 100% rename from Maths/tp/tp3/reines.cnf rename to Maths/tp/Base1/tp3/reines.cnf diff --git a/Maths/tp/tp3/reines.py b/Maths/tp/Base1/tp3/reines.py similarity index 100% rename from Maths/tp/tp3/reines.py rename to Maths/tp/Base1/tp3/reines.py diff --git a/Maths/tp/tp3/script.py b/Maths/tp/Base1/tp3/script.py similarity index 100% rename from Maths/tp/tp3/script.py rename to Maths/tp/Base1/tp3/script.py diff --git a/Maths/tp/tp3/supercalcul.txt b/Maths/tp/Base1/tp3/supercalcul.txt similarity index 100% rename from Maths/tp/tp3/supercalcul.txt rename to Maths/tp/Base1/tp3/supercalcul.txt diff --git a/Maths/tp/tp4/tp4.py b/Maths/tp/Base1/tp4/tp4.py similarity index 100% rename from Maths/tp/tp4/tp4.py rename to Maths/tp/Base1/tp4/tp4.py diff --git a/Maths/tp/tp4/tp4moi.py b/Maths/tp/Base1/tp4/tp4moi.py similarity index 100% rename from Maths/tp/tp4/tp4moi.py rename to Maths/tp/Base1/tp4/tp4moi.py diff --git a/Maths/tp/tp5/tp5.py b/Maths/tp/Base1/tp5/tp5.py similarity index 100% rename from Maths/tp/tp5/tp5.py rename to Maths/tp/Base1/tp5/tp5.py diff --git a/Maths/tp/Bases2/tp1/TP1_numpy_matplotlib.pdf b/Maths/tp/Bases2/tp1/TP1_numpy_matplotlib.pdf new file mode 100644 index 0000000..10d5888 Binary files /dev/null and b/Maths/tp/Bases2/tp1/TP1_numpy_matplotlib.pdf differ diff --git a/Maths/tp/Bases2/tp1/exo1_numpy_généralités.py b/Maths/tp/Bases2/tp1/exo1_numpy_généralités.py new file mode 100644 index 0000000..f368f11 --- /dev/null +++ b/Maths/tp/Bases2/tp1/exo1_numpy_généralités.py @@ -0,0 +1,82 @@ +### Exercice : tableaux en Numpy (introduction) +############################################### + +import numpy as np + +# Tous les passages indiqués "TODO()" sont à remplacer par vos soins +def TODO(): + print("à vous!") + exit() + +### DÉFINITION D'UN ARRAY NUMPY + +print("Définition d'un array Numpy à partir d'une list :") +A = np.array([ -4, -32, 25, -15, -12, -23, 4, -3, -17]) +print("A=",A) +print("len(A)=",len(A)) + +# exit() # -------------- Supprimez cette ligne pour passer à la suite ------------------ + +print("Définition d'un array Numpy avec la fonction arange:") +# np.arange(DEBUT,FIN,PAS) +# Fonctionne comme 'range', mais on peut utiliser des nombres non entiers +B = np.arange(0,1,0.05) #entre 0 et 1, par pas de 0.05 +print("B=",B) +print("len(B)=",len(B)) #longueur du tableau + +# exit() # -------------- Supprimez cette ligne pour passer à la suite ------------------ + +print("Définition d'un array Numpy avec la fonction linspace:") +# np.linspace(DEBUT,FIN,NOMBRE_DE_POINTS) +C = np.linspace(0,np.pi,20) +print("C=",C) +print("len(C)=",len(C)) +# Remarque: linspace est généralement le choix le plus pertinent pour les graphiques (voir plus loin) + +# exit() # -------------- Supprimez cette ligne pour passer à la suite ------------------ + + +### MANIPULATIONS DE BASE : À VOUS ! + +print("Affichez un tableau contenant la somme de B et C (élément par élément):") +Z = np.array([B+C]) +print(Z) + +# Remarque : notez bien la différence de fonctionnement comparé aux listes Python! +# Dans le cadre de Numpy, l'opérateur '+' reprend un sens mathématique d'addition. + +# exit() # -------------- Supprimez cette ligne pour passer à la suite ------------------ + +print("Définissez un tableau D de 100 nombres (exactement) répartis uniformément de 1 (inclus) à 10 (inclus).") +D = np.linspace(1,10,100) +print("D=",D) +print("len(D)=",len(D)) + +# exit() # -------------- Supprimez cette ligne pour passer à la suite ------------------ + +print("Définissez un tableau E de 100 nombres, contenant le LOGARITHME DÉCIMAL de chaque valeur contenue dans D.") +E = np.log10(D) # a exactement le meme nombre de valeurs que D +print("E=",E) +print("len(E)=",len(E)) + +# exit() # -------------- Supprimez cette ligne pour passer à la suite ------------------ + +print("Définissez un tableau F de 100 nombres, contenant la formule \"cos(x)+2*sin(x)\" appliquée à chaque élément du tableau D.") +F = np.cos(D)+2*np.sin(D) # a exactement le meme nombre de valeurs que D +print("F=",F) +print("len(F)=",len(F)) + +# exit() # -------------- Supprimez cette ligne pour passer à la suite ------------------ + +print("Trouvez la plus grande valeur contenue dans le tableau F:") +print("max(F)=",max(F)) + +# exit() # -------------- Supprimez cette ligne pour passer à la suite ------------------ + +print("Créez un tableau contenant la concaténation des tableaux A et B, sur une seule ligne:") +print("A=",A) +print("B=",B) +G = np.concatenate((A,B)) +print("G=",G) +# (internet autorisé, attention aux parenthèses!) + diff --git a/Maths/tp/Bases2/tp1/exo2_numpy_indexation.py b/Maths/tp/Bases2/tp1/exo2_numpy_indexation.py new file mode 100644 index 0000000..dfa1eae --- /dev/null +++ b/Maths/tp/Bases2/tp1/exo2_numpy_indexation.py @@ -0,0 +1,122 @@ +### Exercice : indexation des tableaux en Numpy +############################################### + +import numpy as np + +# Tous les passages indiqués "TODO()" sont à remplacer par vos soins +def TODO(): + print("à vous!") + exit() + +# Définition d'un array Numpy +A = np.array([ -4, -32, 25, -15, -12, -23, 4, -3, -17, 47, -40, 20, 11, + -6, 44, -47, 42, 26, -5, 46, 47, 34, 28, 47, 38, -42, + 5, -39, -28, 29]) +print("A=",A) +print("len(A)=",len(A)) + +#B = np.array([ 4, 6, 8, 9, 2, 1, 19, 101, 115, 12, 112, 2059, 500, 13, +# 15, 805, 6077, 6070, 303, 200, 80, 70, 60, 50, 40, 30, 25, 76, 77, 78]) +# exit() # -------------- Supprimez cette ligne pour passer à la suite ------------------ + +### SLICING + +# Le slicing permet d'accéder à une sous-partie d'une liste ou d'un tuple +# (objets Python standards) ou d'un array (objet Numpy). +# Il prend la forme générale +# DEBUT:FIN:PAS +# qui signifie : tous les éléments depuis l'indice DEBUT (inclus) jusqu'à +# l'indice FIN (exclus) en prenant un élément tous les PAS. + +print("======= Exemple de slicing : A[3:14:2] ") +print(A[3:14:2]) + +# exit() # -------------- Supprimez cette ligne pour passer à la suite ------------------ + +# Si PAS est omis, il vaut 1 (on prend les éléments de 1 en 1) +print("Affichez tous les éléments de l'index 3 (inclus) à 14 (exclus).") +print(A[3:14]) + +# exit() # -------------- Supprimez cette ligne pour passer à la suite ------------------ + +# Si DEBUT est omis, il vaut 0 (on part depuis le début du tableau) +print("Affichez 1 élément sur 2, depuis le début et jusqu'à l'index 12 INCLUS") +print(A[:13:2]) + +# exit() # -------------- Supprimez cette ligne pour passer à la suite ------------------ + +# Si FIN est omis, on va jusqu'au bout du tableau +print("Affichez 1 élément sur 3, depuis l'index 4 (inclus) jusqu'à la fin.") +print(A[4::3]) + +# exit() # -------------- Supprimez cette ligne pour passer à la suite ------------------ + +# Si DEBUT et/ou FIN sont négatifs, ils indiquent une position en partant +# de la fin du tableau (-1 est le dernier élément, -2 l'avant-dernier, etc.) +print("Affichez les 10 derniers éléments de A.") +print(A[-10::]) + +# exit() # -------------- Supprimez cette ligne pour passer à la suite ------------------ + +print("\nAffichez 1 élément sur 3, en partant du début, et en vous arrêtant 10 éléments avant la fin du tableau.") +print(A[:-9:3]) + +# exit() # -------------- Supprimez cette ligne pour passer à la suite ------------------ + +# Si PAS est négatif, on lit les éléments dans le sens inverse. +print("\nAffichez le tableau A à l'envers, depuis son dernier élément jusqu'au premier.") +print(A[::-1]) + +# exit() # -------------- Supprimez cette ligne pour passer à la suite ------------------ + +print("\nAffichez les 10 derniers éléments de A, à l'envers.") +print(A[:-10:-1]) + +# exit() # -------------- Supprimez cette ligne pour passer à la suite ------------------ + + +### INDEXATION PAR UNE LISTE D'INDICES (uniquement en Numpy) + +# En Numpy, on peut utiliser une LISTE (ou un autre ARRAY) de nombres entiers positifs +# indiquant tous les emplacements qu'on souhaite lire dans le tableau. + +print("\n======= Exemple d'indexation par une liste :") +print("A=",A) +print("len(A)=",len(A)) +indices = [1,3,4,5,10] +print(indices) +print(A[indices]) + +# exit() # -------------- Supprimez cette ligne pour passer à la suite ------------------ + +print("\nExtrayez le sous-tableau de A donné par les indices qui sont un nombre au carré (0,1,4,9, etc.) :") +carree = [0,1,4,9,16,25] +print(carree) +print(A[carree]) + +# exit() # -------------- Supprimez cette ligne pour passer à la suite ------------------ + + +### INDEXATION PAR UN MASQUE BINAIRE (uniquement en Numpy) + +# En Numpy, on peut indexer des éléments de A à l'aide d'un autre array, de la même +# taille que A, mais contenant des booléens indiquant si chaque index doit être +# conservé (True) ou écarté (False) + +print("\n======= Exemple d'indexation par masque binaire:") +print("A=",A) +print("len(A)=",len(A)) +test = A>0 +print(test) +print(A[test]) + +# exit() # -------------- Supprimez cette ligne pour passer à la suite ------------------ + +print("\nCréez un tableau B, de la même taille que A, dans lequel les nombres pairs sont conservés, mais les nombres impairs sont remplacés par des 0 :") +B = A.copy() +test1 = B%2==0 +test2 = abs(B)%2!=0 +B[test2] = 0 +print(B) +# Indice : utilisez la fonction np.mod + diff --git a/Maths/tp/Bases2/tp1/exo3.py b/Maths/tp/Bases2/tp1/exo3.py new file mode 100644 index 0000000..6c5459f --- /dev/null +++ b/Maths/tp/Bases2/tp1/exo3.py @@ -0,0 +1,8 @@ +import matplotlib.pyplot as plt +plt.figure() +X=[0,3,2,1] +Y=[0,0,1,-1] +plt.plot(X,Y,color='blue') +plt.axis('equal') +plt.title('Ma première figure') +plt.show() \ No newline at end of file