Maison >développement back-end >Tutoriel Python >Comment extraire des éléments d'un tableau 2D à l'aide des indices d'un autre tableau ?

Comment extraire des éléments d'un tableau 2D à l'aide des indices d'un autre tableau ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-09 11:40:021073parcourir

How to Extract Elements from a 2D Array Using Indices from Another Array?

Utiliser un tableau NumPy comme indices pour la 2e dimension d'un autre tableau

Pour extraire des éléments spécifiques d'un tableau 2D en fonction des indices fournis par un deuxième tableau, vous pouvez tirer parti de l'indexation de tableau d'entiers de NumPy.

Considérez cet exemple :

A = np.array([[0,1], [2,3], [4,5]])
B = np.array([[1], [0], [1]], dtype='int')

Pour obtenir le résultat souhaité suivant :

C = np.array([[1], [2], [5]])

Vous pouvez utiliser le méthode suivante :

A[np.arange(A.shape[0]),B.ravel()]

Comment ça marche :

  • np.arange(A.shape[0]) crée un tableau contenant des indices pour chaque ligne de A.
  • B.ravel() aplatit B, supprimant toutes les dimensions supplémentaires.
  • Le tableau d'index combiné [np.arange(A.shape[0]),B.ravel() ] spécifie les indices de ligne et de colonne dans A à extraire.

Alternativement, si B est un tableau 1D ou une liste d'indices de colonne, vous pouvez ignorer l'aplatissement avec .ravel() :

A[np.arange(A.shape[0]),B]

Cette méthode fournit une approche simple pour extraire des éléments d'un tableau 2D à l'aide d'indices dérivés d'un autre tableau.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn