parent
1c6d76ffac
commit
d225306b42
Binary file not shown.
@ -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!)
|
||||
|
@ -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
|
||||
|
@ -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()
|
Loading…
Reference in new issue