Extraction d'éléments à l'aide de l'indexation de tableaux d'entiers
Lorsque vous travaillez avec des tableaux multidimensionnels, il est souvent nécessaire d'extraire des éléments spécifiques en fonction d'indices. Dans NumPy, vous pouvez utiliser diverses techniques pour y parvenir. L'une de ces méthodes consiste à utiliser l'indexation de tableaux d'entiers.
Considérons l'exemple suivant :
A = np.array([[0,1], [2,3], [4,5]]) B = np.array([[1], [0], [1]])
Notre objectif est de créer un nouveau tableau C qui contient des éléments de A où l'index de ligne pour chacun L'élément est donné par A.shape[0] et l'index de colonne est donné par la version effilée de B. En d'autres termes, C devrait être :
C = np.array([[1], [2], [5]])
Une approche consiste à utiliser l'indexation de tableaux d'entiers comme suit :
A[np.arange(A.shape[0]),B.ravel()]
Cette approche utilise la fonction arange pour générer une plage d'indices pour les lignes de A, puis la combine avec la version effilée de B pour créer les indices de colonne. Le résultat est un nouveau tableau contenant les éléments souhaités.
# Sample run print(A) print(B) print(A[np.arange(A.shape[0]),B.ravel()])
Sortie :
[[0 1] [2 3] [4 5]] [[1] [0] [1]] [1 2 5]
Il est important de noter que si B est un tableau 1D ou un liste, vous pouvez ignorer l'opération d'aplatissement avec .ravel().
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!