Tableau Python de valeurs numériques

Dans ce didacticiel, vous découvrirez le module de tableau Python, la différence entre les tableaux et les listes, et comment et quand les utiliser à l'aide d'exemples.

Remarque: Lorsque les gens disent des tableaux en Python, le plus souvent, ils parlent de listes Python . Si tel est le cas, visitez le didacticiel sur la liste Python.

Dans ce tutoriel, nous nous concentrerons sur un module nommé array. Le arraymodule nous permet de stocker une collection de valeurs numériques.

Création de tableaux Python

Pour créer un tableau de valeurs numériques, nous devons importer le arraymodule. Par exemple:

 import array as arr a = arr.array('d', (1.1, 3.5, 4.5)) print(a)

Production

 tableau ('d', (1.1, 3.5, 4.5))

Ici, nous avons créé un tableau de floattype. La lettre dest un code de type. Cela détermine le type de tableau lors de la création.

Les codes de type couramment utilisés sont répertoriés comme suit:

Code Type C Type de Python Octets minimum
b char signé int 1
B caractère non signé int 1
u Py_UNICODE Unicode 2
h signé court int 2
H court non signé int 2
i signé int int 2
I non signé int 2
l signé long int 4
L non signé longtemps int 4
f flotte flotte 4
d double flotte 8

Nous ne discuterons pas des différents types C dans cet article. Nous utiliserons deux codes de type dans tout cet article: ipour les entiers et dpour les flottants.

Remarque : Le ucode de type des caractères Unicode est obsolète depuis la version 3.3. Évitez d'utiliser autant que possible.

Accès aux éléments de tableau Python

Nous utilisons des indices pour accéder aux éléments d'un tableau:

 import array as arr a = arr.array('i', (2, 4, 6, 8)) print("First element:", a(0)) print("Second element:", a(1)) print("Last element:", a(-1))

Production

 Premier élément: 2 Deuxième élément: 4 Dernier élément: 8

Remarque : L'index commence à 0 (et non à 1) comme pour les listes.

Trancher des tableaux Python

Nous pouvons accéder à une gamme d'éléments dans un tableau en utilisant l'opérateur de découpage :.

 import array as arr numbers_list = (2, 5, 62, 5, 42, 52, 48, 5) numbers_array = arr.array('i', numbers_list) print(numbers_array(2:5)) # 3rd to 5th print(numbers_array(:-5)) # beginning to 4th print(numbers_array(5:)) # 6th to end print(numbers_array(:)) # beginning to end

Production

 tableau ('i', (62, 5, 42)) tableau ('i', (2, 5, 62)) tableau ('i', (52, 48, 5)) tableau ('i', (2 , 5, 62, 5, 42, 52, 48, 5))

Modification et ajout d'éléments

Les tableaux sont mutables; leurs éléments peuvent être modifiés de la même manière que les listes.

 import array as arr numbers = arr.array('i', (1, 2, 3, 5, 7, 10)) # changing first element numbers(0) = 0 print(numbers) # Output: array('i', (0, 2, 3, 5, 7, 10)) # changing 3rd to 5th element numbers(2:5) = arr.array('i', (4, 6, 8)) print(numbers) # Output: array('i', (0, 2, 4, 6, 8, 10))

Production

 tableau ('i', (0, 2, 3, 5, 7, 10)) tableau ('i', (0, 2, 4, 6, 8, 10))

Nous pouvons ajouter un élément au tableau à l'aide de la append()méthode, ou ajouter plusieurs éléments à l'aide de la extend()méthode.

 import array as arr numbers = arr.array('i', (1, 2, 3)) numbers.append(4) print(numbers) # Output: array('i', (1, 2, 3, 4)) # extend() appends iterable to the end of the array numbers.extend((5, 6, 7)) print(numbers) # Output: array('i', (1, 2, 3, 4, 5, 6, 7))

Production

 array ('i', (1, 2, 3, 4)) array ('i', (1, 2, 3, 4, 5, 6, 7))

Nous pouvons également concaténer deux tableaux à l'aide de l' +opérateur.

 import array as arr odd = arr.array('i', (1, 3, 5)) even = arr.array('i', (2, 4, 6)) numbers = arr.array('i') # creating empty array of integer numbers = odd + even print(numbers)

Production

 tableau ('i', (1, 3, 5, 2, 4, 6)) 

Suppression d'éléments de tableau Python

Nous pouvons supprimer un ou plusieurs éléments d'un tableau en utilisant l'instruction del de Python.

 import array as arr number = arr.array('i', (1, 2, 3, 3, 4)) del number(2) # removing third element print(number) # Output: array('i', (1, 2, 3, 4)) del number # deleting entire array print(number) # Error: array is not defined

Production

 array ('i', (1, 2, 3, 4)) Traceback (dernier appel en dernier): Fichier "", ligne 9, en impression (numéro) # Erreur: le tableau n'est pas défini NameError: le nom 'numéro' est non défini

Nous pouvons utiliser la remove()méthode pour supprimer l'élément donné et la pop()méthode pour supprimer un élément à l'index donné.

 import array as arr numbers = arr.array('i', (10, 11, 12, 12, 13)) numbers.remove(12) print(numbers) # Output: array('i', (10, 11, 12, 13)) print(numbers.pop(2)) # Output: 12 print(numbers) # Output: array('i', (10, 11, 13))

Production

 tableau ('i', (10, 11, 12, 13)) 12 tableau ('i', (10, 11, 13))

Consultez cette page pour en savoir plus sur les méthodes de tableau et de tableau Python.

Listes Python et tableaux

En Python, nous pouvons traiter les listes comme des tableaux. Cependant, nous ne pouvons pas contraindre le type d'éléments stockés dans une liste. Par exemple:

 # elements of different types a = (1, 3.5, "Hello") 

Si vous créez des tableaux à l'aide du arraymodule, tous les éléments du tableau doivent être du même type numérique.

 import array as arr # Error a = arr.array('d', (1, 3.5, "Hello"))

Production

 Traceback (most recent call last): File "", line 3, in a = arr.array('d', (1, 3.5, "Hello")) TypeError: must be real number, not str

When to use arrays?

Lists are much more flexible than arrays. They can store elements of different data types including strings. And, if you need to do mathematical computation on arrays and matrices, you are much better off using something like NumPy.

So, what are the uses of arrays created from the Python array module?

The array.array type is just a thin wrapper on C arrays which provides space-efficient storage of basic C-style data types. If you need to allocate an array that you know will not change, then arrays can be faster and use less memory than lists.

À moins que vous n'ayez pas vraiment besoin de tableaux (un module de tableau peut être nécessaire pour s'interfacer avec le code C), l'utilisation du module de tableau n'est pas recommandée.

Articles intéressants...