Python n'a pas de support intégré pour les Arrays (arrayx), mais les listes de Python peuvent être utilisées à la place. Cette page vous montre comment utiliser les LISTES comme des ARRAYS. Cependant, pour travailler avec des arrayx en Python, vous devez importer une bibliothèque, comme la bibliothèque NumPy.
Un array est une variable spéciale, qui peut contenir plus d'une valeur à la fois.
Si vous avez une liste d'éléments (une liste de noms de voitures, par exemple), le stockage des voitures dans des variables individuelles pourrait ressembler à ceci :
Cependant, que se passe-t-il si vous voulez parcourir les voitures en boucle et trouver une voiture spécifique ? Et que se passe-t-il si vous n'avez pas 3 voitures, mais 300 ?
La solution est un array !
Un array peut contenir plusieurs valeurs sous un seul nom, et vous pouvez accéder aux valeurs en vous référant à un numéro d'index.
Accéder aux éléments d'un array
Pour accéder à un élément d'un array, il faut se référer à son numéro d'index.
Exemple Obtenez la valeur du premier élément de l'array : x = voitures[0] Ou modifiez la valeur du premier élément de l'array : voitures[0] = "Toyota"
La longueur d'un array
Pour obtenir la longueur d'un array (le nombre d'éléments dans un array), utilisez la méthode len().
Exemple Retournez le nombre d'éléments dans le array : x = len(voitures)
Remarque : la longueur d'un array est toujours supérieure d'une unité à l'indice le plus élevé de l'array.
Boucle sur les éléments d'un array
Vous pouvez utiliser la boucle for in pour parcourir en boucle tous les éléments d'un array.
Exemple Imprimez chaque élément de l'array voitures
Vous pouvez utiliser la méthode append() pour ajouter un élément à un array.
Exemple : Ajoutez un élément supplémentaire au array de voitures :
voitures.append("Honda")
Suppression d'éléments d'un array
Vous pouvez utiliser la méthode pop() pour supprimer un élément de l'array.
Exemple : Supprimez le deuxième élément de l'array voitures :
voitures.pop(1)
Vous pouvez également utiliser la méthode remove() pour supprimer un élément de l'array.
Exemple : Supprimez l'élément dont la valeur est "Volvo" :
voitures.remove("Volvo")
Remarque : la méthode remove() de la liste ne supprime que la première occurrence de la valeur spécifiée.
Méthodes pour les arrayx
Python dispose d'un ensemble de méthodes intégrées que vous pouvez utiliser sur les listes et les arrayx.
Méthode
Description
append()
Ajoute un élément à la fin de la liste.
clear()
Supprime tous les éléments de la liste
copy()
Renvoie une copie de la liste
count()
Renvoie le nombre d'éléments ayant la valeur spécifiée.
extend()
Ajoute les éléments d'une liste (ou de n'importe quel itérable), à la fin de la liste courante.
index()
Renvoie l'indice du premier élément ayant la valeur spécifiée.
insert()
Ajoute un élément à la position spécifiée
pop()
Supprime l'élément à la position spécifiée
remove()
Supprime le premier élément avec la valeur spécifiée
reverse()
Inverse l'ordre de la liste
sort()
Trie la liste
Remarque : Python n'a pas de support intégré pour les arrays, mais les listes Python peuvent être utilisées à la place.
Cependant, pour travailler avec des arrayx en Python, vous devez importer une bibliothèque, comme la bibliothèque NumPy. et c'est ce que montre la suite de ce cours
Création d'un array NumPy
Dans ce qui suit, vous apprendrez à créer des arrays NumPy, notamment des arrays unidimensionnels, bidimensionnels et tridimensionnels.
L'array est la structure de données centrale de la bibliothèque NumPy. Un array NumPy est une grille de valeurs de même type et indexées par un tuple d'entiers non négatifs.
Tous les array sont des instances de la classe ndarray. Pour créer un nouveau array NumPy, vous utilisez la fonction array() de la bibliothèque NumPy.
Avant de commencer, vérifier si la bibliotéque NumPy est installée en executant le code suivant:
Comment ça fonctionne?
Tout d'abord, importez la bibliothèque numpy en tant que np :
import numpy as np
Ensuite, créez un array 1-D (une dimention) en passant une liste de trois entiers :
a = np.array([1, 2, 3])
La fonction array() renvoie une nouvelle instance du type ndarray. Par conséquent, le type(a) renvoie .
Un array 1-D est créé comme un vecteur.
Récupérer la dimension d'un array
Pour connaitre le nombre de dimensions d'un array, la propriété ndim est utilisée. En NumPy, les dimensions sont appelées axes.
Par exemple : le code qui suit renvoie la dimension de l'array:
import numpy as np
a = np.array([1, 2, 3])
print(a.dtype)
Dans cet exemple, le type des éléments est int32. Si vous voulez définir le type des éléments de l'array, vous pouvez utiliser l'argument dtype de la fonction array(). Comme le montre l'exemple xuivant :
import numpy as np
a = np.array([1, 2, 3], dtype=np.float64)
print(a)
print(a.dtype)
Dans cet exemple, les nombres de l'array ont le point décimal (.) et le type de données de ses éléments est float64.
Indexation de arrays 1-D NumPy
Le long d'un seul axe, vous pouvez sélectionner des éléments en utilisant des indices. Le premier élément est indexé 0, le deuxième élément est indexé 1, et ainsi de suite.
Outre les indices non négatifs, vous pouvez utiliser des indices négatifs pour localiser des éléments. Par exemple, le dernier élément a un indice -1, l'avant-dernier élément a un indice -2, et ainsi de suite.
L'exemple suivant montre comment accéder aux éléments d'un array
import numpy as np
b = np.array([[1, 2, 3],[4, 5, 6]])
print(b)
x=b.ndim
print(str(x) + " dimensions")
Dans cet exemple, nous passons une liste d'une liste d'entiers à la fonction array(). La propriété ndim renvoie 2 comme prévu.
Une bonne astuce pour obtenir le nombre de dimensions d'un array est de compter les crochets ([) jusqu'à ce que vous rencontriez le premier nombre. Le nombre de crochets correspond au nombre de dimensions ou d'axes.
Un array à deux dimensions est également appelé une matrice.
Indexation de l'array NumPy sur des arrays 2-D
Avec les arrays 2-D et multidimensionnels, vous pouvez sélectionner des éléments comme vous l'avez fait avec les arrays 1-D, mais pour chaque dimension (ou axe). Par exemple :
L'exemple suivant crée un array NumPy 3-D :
Cette image montre que nous avons :
Deux index sur l'axe-0, donc on aura les indexs 0 et 1
Trois indexs sur l'axe-1, on aura alors les indexes 0, 1 et 2
ET en fin deux indexs sur l'axe-2, et on aura donc les indexs 0 et 1
pour avoir un élément on l'idexe comme suit :
[index axe-0, index axe-1, index axe-2]
Découpage d'un array Numpy sur des arrays uni-dimensionnels D-1
Les arrays NumPy utilisent les [] et : pour le découpage en tranches comme les listes. En utilisant les tranches, vous pouvez sélectionner une plage d'éléments dans un array avec la syntaxe suivante :
[m:n]
Cette tranche sélectionne les éléments commençant par m et se terminant par n-1. Notez que le nième élément n'est pas inclus. En fait, la tranche m:n peut être définie explicitement comme suit :
[m:n:1]
Le chiffre 1 indique que la tranche sélectionne tous les éléments entre m et n , n non inclus.
Pour sélectionner tous les deux éléments, vous pouvez utiliser la tranche suivante :
[m:n:2]
En général, l'expression suivante sélectionne tous les k éléments entre m et n :
[m:n:k]
Si k est négatif, la tranche renvoie les éléments dans l'ordre inverse, de m à n+1. Le tableau suivant illustre les expressions de découpage en tranches :
Tranche Expression
>
Signification
a[m:n]
Sélectionner les éléments dont l'indice commence à m et se termine à n-1.
a[:] or a[0:-1]
Sélectionner tous les éléments dans un axe donné
a[:n]
Sélectionner les éléments à partir de l'indice 0 jusqu'à l'élément d'indice n-1.
a[m:]
Sélectionne les éléments à partir de l'indice m jusqu'au dernier élément.
a[m:-1]
Sélectionner les éléments à partir de l'indice m jusqu'au dernier élément.
a[m:n:k]
Sélectionner les éléments d'indice m à n (exclusif), avec un incrément k
a[::-1]
Sélectionne tous les éléments dans l'ordre inverse
Voir l'exemple suivant:
[index axe-0, index axe-1, index axe-2]
import numpy as np
a = np.arange(10, 101,10)
print('a=', a)
print('a[2:5]=', a[2:5])
print('a[:]=', a[:])
print('a[0:-1]=', a[0:-1])
print('a[0:6]=', a[0:6])
print('a[7:]=', a[7:])
print('a[5:-1]=', a[5:-1])
print('a[0:5:2]=', a[0:5:2])
print('a[::-1]=', a[::-1])
Découpage de tableaux Numpy sur des arrays multidimensionnels
Pour découper un array multidimensionnel, vous appliquez les crochets [] et la notation : à chaque dimension (ou axe). Le découpage renvoie un array réduit dont chaque élément correspond aux règles de sélection. Par exemple :
import numpy as np
a = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
])
print(a[0:2, :])
L'image qui suit montre les éléments que nous avons sélectionné par l'expression a[0:2, :] en vert
Dans cet exemple, le array a est un array 2-D. Dans l'expression a[0:2, :]
D'abord, le 0:2 sélectionne les éléments à l'indice 0 et 1, c'est-à-dire les éléments du début jusqu'à l'élément avec l'index 2 non inclus ce qui renvoie :
[[1 2 3] [4 5 6]]
Ensuite, le : sélectionne tous les éléments. Par conséquent, l'expression entière retourne :
[[1 2 3] [4 5 6]]
Prenons un autre exemple :
import numpy as np
a = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
])
print(a[1:, 1:])
Dans l'expression a[1 :, 1 :]:
D'abord, (1: ) sélectionne les éléments à partir de l'indice 1 jusqu'au dernier élément du premier axe (ou ligne), ce qui renvoie :
[[4 5 6]
[7 8 9]]
Second, 1 : sélectionne les éléments à partir de l'indice 1 jusqu'aux derniers éléments du second axe (ou colonne), ce qui donne :
[[5 6]
[8 9]]
Indexation fantaisiste
Dans le tutoriel précédent, vous avez appris à sélectionner les éléments d'un tableau NumPy en utilisant les techniques d'indexation et de découpage.
En plus de l'utilisation de l'indexation et du découpage, NumPy vous fournit un moyen pratique d'indexer un array appelé fancy indexing.
L'indexation fantaisiste vous permet d'indexer un array numpy en utilisant ce qui suit :
Un autre array NumPy
Une liste Python
Une séquence d'entiers
Voyons l'exemple suivant :
import numpy as np
a = np.arange(1, 10)
print(a)
indices = np.array([2, 3, 4])
print(a[indices])
Sortie :
[1 2 3 4 5 6 7 8 9]
[3 4 5]
Comment cela fonctionne?
Tout d'abord, nous avons utilisé la fonction arange() pour créer un array numpy (a) avec les nombres de 1 à 9 :
a=[1 2 3 4 5 6 7 8 9]
Ensuite, créez un deuxième array numpy pour l'indexation :
indices = np.array([2, 3, 4]) Ce qui définie les indexes dont on veut obtenir éléments
Troisièmement, utilisez le tableau indices pour indexer le tableau a :
print(a[indices])
L'indexation fantaisiste vous permet d'indexer un tableau à l'aide d'un autre tableau, d'une liste ou d'une séquence d'entiers.
Indexation booléenne d'un array NumPy
Numpy vous permet d'utiliser un array de valeurs booléennes comme index d'un autre array. Chaque élément de l'array booléen indique s'il faut ou non sélectionner les éléments de l'array.
Si la valeur est True, l'élément de cet index est sélectionné. Dans le cas où la valeur est False, l'élément de cet index n'est pas sélectionné.
L'exemple suivant utilise l'indexation booléenne pour sélectionner les éléments d'un array numpy en utilisant un array de valeurs booléennes :
import numpy as np
a = np.arange(1, 10)
b = a > 6
print(b)
c = a[b]
print(c)
Sortie de ce code:
[False False False False False False True True True]
[7 8 9]
Comment cela fonctionne?
D'abord, créez un array qui contient 9 nombres de 1 à 9 en utilisant la fonction arange() :
a = np.arange(1, 10)
Ensuite, créez un array booléen à partir de l'expression suivante :
b = a > 6
Cette expression compare chaque élément du array a avec 6 et renvoie Vrai s'il est supérieur à 6 ou Faux sinon. La variable b est un array de valeurs booléennes :
[False False False False False False True True True]
Troisièmement, utilisez le array b comme index du array a et assignez le résultat à la variable c :
c = a[b]
Le array c contient uniquement les nombres du array a, qui sont supérieurs à 6.