Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Indexation par Tableau d'Entiers | Indexation et Découpage
Bases de NumPy

bookIndexation par Tableau d'Entiers

Glissez pour afficher le menu

En plus de l'indexation de base, où l'on utilise un entier pour un seul indice, NumPy permet également d'utiliser un tableau 1D d'entiers (une liste d'entiers est aussi possible) pour l'indexation.

Indexation par tableau d'entiers dans les tableaux 1D

Chaque élément du tableau d'entiers utilisé pour l'indexation est traité comme un indice. Par exemple, array[[0, 1, 3]] récupère les éléments aux indices 0, 1 et 3 sous la forme d'un tableau 1D, à condition que array soit lui-même un tableau 1D. Il est également possible d'utiliser des tableaux NumPy pour l'indexation, mais cela rend le code plus lourd.

12345678
import numpy as np array = np.array([23, 41, 7, 80, 3]) # Retrieving elements at indices 0, 1 and 3 print(array[[0, 1, 3]]) # Retrieving elements at indices 1, -1 and 2 in this order print(array[[1, -1, 2]]) # IndexError is thrown since index 5 is out of bounds print(array[[2, 5]])
copy

Indexation par tableau d'entiers dans les tableaux 1D

En ce qui concerne les tableaux 2D et de dimensions supérieures, l'indexation par tableau d'entiers fonctionne de la même manière que dans les tableaux 1D le long de chaque axe. Si l'on utilise un seul tableau d'entiers pour l'indexation, on indexe uniquement le long d'un axe (axe 0). Si l'on utilise deux tableaux séparés par une virgule, on indexe le long des deux axes (axe 0 et axe 1).

L'indexation uniquement le long de l'axe 0 à l'aide d'un tableau d'entiers retourne un tableau 2D. Lorsque l'on accède aux éléments via ce type d'indexation, on les regroupe dans un nouveau tableau. Ce nouveau tableau est constitué de tableaux 1D, et ce regroupement augmente la dimension d'un cran, produisant ainsi un tableau 2D.

L'indexation le long de l'axe 0 et de l'axe 1 à l'aide de deux tableaux d'entiers retourne un tableau 1D.

Note
Remarque

Tous les tableaux d'entiers utilisés pour chacun des axes doivent avoir la même forme.

123456789101112131415
import numpy as np array_2d = np.array([ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]) # Retrieving first and the third row print(array_2d[[0, 2]]) # Retrieving the main diagonal elements print(array_2d[[0, 1, 2], [0, 1, 2]]) # Retrieving the first and third element of the second row print(array_2d[1, [0, 2]]) # IndexError is thrown, since index 3 along axis 0 is out of bounds print(array_2d[[0, 3], [0, 1]])
copy

Comme vous pouvez le voir, il est également possible de combiner l'indexation entière de base et l'indexation par tableau d'entiers.

Note
Remarque

Encore une fois, si au moins un des indices est hors limites, une erreur IndexError est levée.

En ce qui concerne les applications, ce type d'indexation est utile lorsque vous devez sélectionner des éléments qui ne sont pas adjacents ou qui ne suivent pas un ordre régulier. Contrairement au découpage, qui fonctionne avec des plages continues, cette méthode permet de choisir exactement quels éléments extraire. Elle est utile pour extraire des données dispersées ou réorganiser les valeurs dans un tableau.

1. Vous analysez les données de ventes mensuelles (en milliers) pour cinq produits. Quel est le résultat de ce code ?

2. Le tableau temperatures représente les températures hebdomadaires (en °C) de trois villes pour lundi, mardi et mercredi. Sélectionnez l'option correcte pour obtenir les températures de Berlin le lundi et le mardi, et de Madrid le mardi.

question mark

Vous analysez les données de ventes mensuelles (en milliers) pour cinq produits. Quel est le résultat de ce code ?

Sélectionnez la réponse correcte

question mark

Le tableau temperatures représente les températures hebdomadaires (en °C) de trois villes pour lundi, mardi et mercredi. Sélectionnez l'option correcte pour obtenir les températures de Berlin le lundi et le mardi, et de Madrid le mardi.

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 5

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 2. Chapitre 5
some-alt