Indexation avancée

30 min Niveau 2

Introduction

Il est possible d'effectuer une sélection dans ndarray qui est une séquence non-tuple, un objet ndarray de type entier ou booléen, ou un tuple dont au moins un élément est un objet séquence. L'indexation avancée renvoie toujours une copie des données. En revanche, le découpage en tranches ne présente qu'une vue.

Il existe deux types d'indexation avancée - Entier et Booléen.

Indexation des nombres entiers

Ce mécanisme permet de sélectionner n'importe quel élément arbitraire d'un tableau en fonction de son index à N dimensions. Chaque tableau d'entiers représente le nombre d'index dans cette dimension. Lorsque l'index est constitué d'autant de tableaux d'entiers que de dimensions du tableau cible, cela devient simple.

Dans l'exemple suivant, un élément de la colonne spécifiée de chaque ligne de l'objet ndarray est sélectionné. Par conséquent, l'indice de ligne contient tous les numéros de ligne, et l'indice de colonne spécifie l'élément à sélectionner.

Exemple 1

import numpy as np 

x = np.array([[1, 2], [3, 4], [5, 6]]) 
y = x[[0,1,2], [0,1,0]] 
print y

Sa sortie serait la suivante -

[1  4  5]

La sélection comprend des éléments à (0,0), (1,1) et (2,0) du premier tableau.

Dans l'exemple suivant, les éléments placés aux coins d'un tableau 4X3 sont sélectionnés. Les indices de ligne de la sélection sont [0, 0] et [3,3] tandis que les indices de colonne sont [0,2] et [0,2].

logo discord

Besoin d'aide ?

Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !

En savoir plus